Clean up handling of Java package name for llvm-rs-cc.

Adds support for C++ code generator to use this package name as well.

This change also resolves a small issue with an uninitialized mVerbose flag.

Change-Id: Ia3037a3f4dbe172ddc51af3064ac1708526a6df6
diff --git a/slang_rs.cpp b/slang_rs.cpp
index 98b9771..3c0fd9c 100644
--- a/slang_rs.cpp
+++ b/slang_rs.cpp
@@ -74,15 +74,11 @@
 }
 
 bool SlangRS::reflectToJava(const std::string &OutputPathBase,
-                            const std::string &OutputPackageName,
-                            const std::string &RSPackageName,
-                            std::string *RealPackageName) {
+                            const std::string &RSPackageName) {
   return mRSContext->reflectToJava(OutputPathBase,
-                                   OutputPackageName,
                                    RSPackageName,
                                    getInputFileName(),
-                                   getOutputFileName(),
-                                   RealPackageName);
+                                   getOutputFileName());
 }
 
 bool SlangRS::generateBitcodeAccessor(const std::string &OutputPathBase,
@@ -337,16 +333,17 @@
     if (!setOutput(OutputFile))
       return false;
 
-    if (!JavaReflectionPackageName.empty()) {
-      mRSContext->setReflectJavaPackageName(
-          JavaReflectionPackageName);
-    }
-
     mIsFilterscript = isFilterscript(InputFile);
 
     if (Slang::compile() > 0)
       return false;
 
+    if (!JavaReflectionPackageName.empty()) {
+      mRSContext->setReflectJavaPackageName(JavaReflectionPackageName);
+    }
+    const std::string &RealPackageName =
+        mRSContext->getReflectJavaPackageName();
+
     if (OutputType != Slang::OT_Dependency) {
 
       if (BitcodeStorage == BCST_CPP_CODE) {
@@ -357,10 +354,7 @@
           }
       } else {
 
-        if (!reflectToJava(JavaReflectionPathBase,
-                           JavaReflectionPackageName,
-                           RSPackageName,
-                           &RealPackageName)) {
+        if (!reflectToJava(JavaReflectionPathBase, RSPackageName)) {
           return false;
         }
 
diff --git a/slang_rs.h b/slang_rs.h
index 08b6674..7f3cd3f 100644
--- a/slang_rs.h
+++ b/slang_rs.h
@@ -62,11 +62,8 @@
   typedef llvm::StringMap<ReflectedDefinitionTy> ReflectedDefinitionListTy;
   ReflectedDefinitionListTy ReflectedDefinitions;
 
-  // The package name that's really applied will be filled in RealPackageName.
   bool reflectToJava(const std::string &OutputPathBase,
-                     const std::string &OutputPackageName,
-                     const std::string &RSPackageName,
-                     std::string *RealPackageName);
+                     const std::string &RSPackageName);
 
   bool generateBitcodeAccessor(const std::string &OutputPathBase,
                                const std::string &PackageName);
diff --git a/slang_rs_context.cpp b/slang_rs_context.cpp
index 7ed387e..bc3b2ed 100644
--- a/slang_rs_context.cpp
+++ b/slang_rs_context.cpp
@@ -284,22 +284,9 @@
 }
 
 bool RSContext::reflectToJava(const std::string &OutputPathBase,
-                              const std::string &OutputPackageName,
                               const std::string &RSPackageName,
                               const std::string &InputFileName,
-                              const std::string &OutputBCFileName,
-                              std::string *RealPackageName) {
-  if (RealPackageName != NULL)
-    RealPackageName->clear();
-
-  const std::string &PackageName =
-      ((OutputPackageName.empty()) ? mReflectJavaPackageName :
-                                     OutputPackageName);
-  slangAssert(!PackageName.empty());
-
-  // Copy back the really applied package name
-  RealPackageName->assign(PackageName);
-
+                              const std::string &OutputBCFileName) {
   if (!RSPackageName.empty()) {
     mRSPackageName = RSPackageName;
   }
@@ -311,7 +298,7 @@
   }
 
   RSReflection *R = new RSReflection(this, mGeneratedFileNames);
-  bool ret = R->reflect(OutputPathBase, PackageName, mRSPackageName,
+  bool ret = R->reflect(OutputPathBase, mReflectJavaPackageName, mRSPackageName,
                         InputFileName, OutputBCFileName);
   if (!ret)
     fprintf(stderr, "RSContext::reflectToJava : failed to do reflection "
diff --git a/slang_rs_context.h b/slang_rs_context.h
index 946393b..7dbd409 100644
--- a/slang_rs_context.h
+++ b/slang_rs_context.h
@@ -219,11 +219,9 @@
   bool insertExportType(const llvm::StringRef &TypeName, RSExportType *Type);
 
   bool reflectToJava(const std::string &OutputPathBase,
-                     const std::string &OutputPackageName,
                      const std::string &RSPackageName,
                      const std::string &InputFileName,
-                     const std::string &OutputBCFileName,
-                     std::string *RealPackageName);
+                     const std::string &OutputBCFileName);
 
   int getVersion() const { return version; }
   void setVersion(int v) {
diff --git a/slang_rs_reflection_base.cpp b/slang_rs_reflection_base.cpp
index a4a0d35..65da696 100644
--- a/slang_rs_reflection_base.cpp
+++ b/slang_rs_reflection_base.cpp
@@ -60,7 +60,8 @@
 "\n";
 
 
-RSReflectionBase::RSReflectionBase(const RSContext *con) {
+RSReflectionBase::RSReflectionBase(const RSContext *con)
+  : mVerbose(true) {
   mRSContext = con;
   mLicenseNote = gApacheLicenseNote;