Fix Java types.hal generation filtering
Bug: 31470959
Change-Id: I9312ad5a73289d829548a93491a8353abf9a451a
diff --git a/AST.h b/AST.h
index 1360e7e..59fb62c 100644
--- a/AST.h
+++ b/AST.h
@@ -74,10 +74,12 @@
status_t generateCppImpl(const std::string &outputPath) const;
status_t generateJava(
- const std::string &outputPath, const char *limitToType) const;
+ const std::string &outputPath,
+ const std::string &limitToType) const;
status_t generateJavaTypes(
- const std::string &outputPath, const char *limitToType) const;
+ const std::string &outputPath,
+ const std::string &limitToType) const;
void getImportedPackages(std::set<FQName> *importSet) const;
diff --git a/generateJava.cpp b/generateJava.cpp
index f9b0cff..e89a577 100644
--- a/generateJava.cpp
+++ b/generateJava.cpp
@@ -43,7 +43,7 @@
}
status_t AST::generateJavaTypes(
- const std::string &outputPath, const char *limitToType) const {
+ const std::string &outputPath, const std::string &limitToType) const {
// Splits types.hal up into one java file per declared type.
for (const auto &type : mRootScope->getSubTypes()) {
@@ -53,7 +53,7 @@
continue;
}
- if ((limitToType != nullptr) && typeName != limitToType) {
+ if (!limitToType.empty() && typeName != limitToType) {
continue;
}
@@ -101,7 +101,7 @@
}
status_t AST::generateJava(
- const std::string &outputPath, const char *limitToType) const {
+ const std::string &outputPath, const std::string &limitToType) const {
if (!isJavaCompatible()) {
fprintf(stderr,
"ERROR: This interface is not Java compatible. The Java backend"
diff --git a/main.cpp b/main.cpp
index 12d3e6a..bc672b1 100644
--- a/main.cpp
+++ b/main.cpp
@@ -53,12 +53,12 @@
CHECK(fqName.isFullyQualified());
AST *ast;
- const char *limitToType = nullptr;
+ std::string limitToType;
if (fqName.name().find("types.") == 0) {
CHECK(lang == "java"); // Already verified in validate().
- limitToType = fqName.name().c_str() + strlen("types.");
+ limitToType = fqName.name().substr(strlen("types."));
FQName typesName(fqName.package(), fqName.version(), "types");
ast = coordinator->parse(typesName);