diff options
author | Muhammad Qureshi <muhammadq@google.com> | 2020-03-05 09:48:48 -0800 |
---|---|---|
committer | Muhammad Qureshi <muhammadq@google.com> | 2020-03-05 14:52:05 -0800 |
commit | f8460f70d072a3ae839002e5b2698ba535da7f76 (patch) | |
tree | 1ddfef27fba803843e13f95b3466002858a5d2dc /tools/stats_log_api_gen/Collation.cpp | |
parent | c88fbf1e1c110765f8de1d288a620896c8e96220 (diff) |
Support multiple module annotations per atom
Bug: 150864291
Test: m stats-log-api-gen-test &&
out/host/linux-x86/nativetest/stats-log-api-gen-test/stats-log-api-gen-test
Change-Id: Ibf8869078c6f1eae13e687f0196d6ed91ec35c64
Diffstat (limited to 'tools/stats_log_api_gen/Collation.cpp')
-rw-r--r-- | tools/stats_log_api_gen/Collation.cpp | 38 |
1 files changed, 8 insertions, 30 deletions
diff --git a/tools/stats_log_api_gen/Collation.cpp b/tools/stats_log_api_gen/Collation.cpp index aa356f1c35d2..66c4b1488b83 100644 --- a/tools/stats_log_api_gen/Collation.cpp +++ b/tools/stats_log_api_gen/Collation.cpp @@ -53,8 +53,7 @@ AtomDecl::AtomDecl(const AtomDecl &that) uidField(that.uidField), whitelisted(that.whitelisted), binaryFields(that.binaryFields), - hasModule(that.hasModule), - moduleName(that.moduleName) {} + moduleNames(that.moduleNames) {} AtomDecl::AtomDecl(int c, const string& n, const string& m) :code(c), @@ -442,9 +441,9 @@ int collate_atoms(const Descriptor *descriptor, Atoms *atoms) { atomDecl.whitelisted = true; } - if (atomField->options().HasExtension(os::statsd::module)) { - atomDecl.hasModule = true; - atomDecl.moduleName = atomField->options().GetExtension(os::statsd::module); + for (int j = 0; j < atomField->options().ExtensionSize(os::statsd::module); ++j) { + const string moduleName = atomField->options().GetExtension(os::statsd::module, j); + atomDecl.moduleNames.insert(moduleName); } vector<java_type_t> signature; @@ -453,36 +452,15 @@ int collate_atoms(const Descriptor *descriptor, Atoms *atoms) { errorCount++; } - // Add the signature if does not already exist. - auto signature_to_modules_it = atoms->signatures_to_modules.find(signature); - if (signature_to_modules_it == atoms->signatures_to_modules.end()) { - set<string> modules; - if (atomDecl.hasModule) { - modules.insert(atomDecl.moduleName); - } - atoms->signatures_to_modules[signature] = modules; - } else { - if (atomDecl.hasModule) { - signature_to_modules_it->second.insert(atomDecl.moduleName); - } - } + atoms->signatures_to_modules[signature].insert( + atomDecl.moduleNames.begin(), atomDecl.moduleNames.end()); atoms->decls.insert(atomDecl); AtomDecl nonChainedAtomDecl(atomField->number(), atomField->name(), atom->name()); vector<java_type_t> nonChainedSignature; if (get_non_chained_node(atom, &nonChainedAtomDecl, &nonChainedSignature)) { - auto it = atoms->non_chained_signatures_to_modules.find(nonChainedSignature); - if (it == atoms->non_chained_signatures_to_modules.end()) { - set<string> modules_non_chained; - if (atomDecl.hasModule) { - modules_non_chained.insert(atomDecl.moduleName); - } - atoms->non_chained_signatures_to_modules[nonChainedSignature] = modules_non_chained; - } else { - if (atomDecl.hasModule) { - it->second.insert(atomDecl.moduleName); - } - } + atoms->non_chained_signatures_to_modules[nonChainedSignature].insert( + atomDecl.moduleNames.begin(), atomDecl.moduleNames.end()); atoms->non_chained_decls.insert(nonChainedAtomDecl); } |