aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2019-10-25 16:34:31 -0700
committerSteven Moreland <smoreland@google.com>2019-10-26 00:03:12 +0000
commit4f80d6eab0e29b3eeae9ca54ade6c3fffb81dbaa (patch)
treecfc43f8f427aeb25c3c7e70021331baf5a69eaa4
parent81e76c4ddf656613b30f29d4cf02492234ff81d8 (diff)
downloadhidl-4f80d6eab0e29b3eeae9ca54ade6c3fffb81dbaa.tar.gz
libhidlmetadata: compiler faster
On some branches w/ many interfaces, m libhidlmetadata: - don't optimize (~10min -> ~1min) - explicit types (~1min -> ~30s) Fixes: 143375846 Test: compilation time Change-Id: Ifd16afaff781a45e08cc2eff24e2982af55bdaf1
-rw-r--r--metadata/Android.bp2
-rw-r--r--metadata/parser.cpp10
2 files changed, 7 insertions, 5 deletions
diff --git a/metadata/Android.bp b/metadata/Android.bp
index 0a7fd487..e3b4eea6 100644
--- a/metadata/Android.bp
+++ b/metadata/Android.bp
@@ -4,6 +4,8 @@ cc_library {
host_supported: true,
srcs: [":hidl_metadata_in_cpp"],
export_include_dirs: ["include"],
+
+ cflags: ["-O0"],
}
// private impl below
diff --git a/metadata/parser.cpp b/metadata/parser.cpp
index ae78415f..ff0be558 100644
--- a/metadata/parser.cpp
+++ b/metadata/parser.cpp
@@ -37,14 +37,14 @@ int main(int argc, char** argv) {
std::cout << "#include <hidl/metadata.h>" << std::endl;
std::cout << "namespace android {" << std::endl;
std::cout << "std::vector<HidlInterfaceMetadata> HidlInterfaceMetadata::all() {" << std::endl;
- std::cout << "return {" << std::endl;
+ std::cout << "return std::vector<HidlInterfaceMetadata>{" << std::endl;
for (const Json::Value& entry : root) {
- std::cout << "{" << std::endl;
+ std::cout << "HidlInterfaceMetadata{" << std::endl;
// HIDL interface characters guaranteed to be accepted in C++ string
- std::cout << "\"" << entry["interface"].asString() << "\"," << std::endl;
- std::cout << "{" << std::endl;
+ std::cout << "std::string(\"" << entry["interface"].asString() << "\")," << std::endl;
+ std::cout << "std::vector<std::string>{" << std::endl;
for (const Json::Value& intf : entry["inheritedInterfaces"]) {
- std::cout << "\"" << intf.asString() << "\"," << std::endl;
+ std::cout << "std::string(\"" << intf.asString() << "\")," << std::endl;
}
std::cout << "}," << std::endl;
std::cout << "}," << std::endl;