summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2021-01-14 07:20:17 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-01-14 07:20:17 +0000
commit8d845b02c9712a8fa1b5abd563a0dee7e521e513 (patch)
tree8e5eb364d0fd1d25f095fa6274965288ebf44525 /tools
parent41903dfea1cd83fdc3bf452c6fed6dddce04412b (diff)
parent14e8ade9a91ea48cb65b3e14954e13a396e1a94d (diff)
Merge "Optimize FilterApkAssets by caching config"
Diffstat (limited to 'tools')
-rw-r--r--tools/aapt2/process/SymbolTable.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/tools/aapt2/process/SymbolTable.cpp b/tools/aapt2/process/SymbolTable.cpp
index ad716c78d65d..daedc2a14767 100644
--- a/tools/aapt2/process/SymbolTable.cpp
+++ b/tools/aapt2/process/SymbolTable.cpp
@@ -227,8 +227,7 @@ bool AssetManagerSymbolSource::AddAssetPath(const StringPiece& path) {
apk_assets.push_back(apk_asset.get());
}
- asset_manager_.SetApkAssets(apk_assets, true /* invalidate_caches */,
- false /* filter_incompatible_configs */);
+ asset_manager_.SetApkAssets(apk_assets);
return true;
}
return false;
@@ -351,9 +350,9 @@ std::unique_ptr<SymbolTable::Symbol> AssetManagerSymbolSource::FindByName(
return true;
}
- auto value = asset_manager_.GetResource(res_id.id, true /* may_be_bag */);
- if (value.has_value()) {
- type_spec_flags = value->flags;
+ auto flags = asset_manager_.GetResourceTypeSpecFlags(res_id.id);
+ if (flags.has_value()) {
+ type_spec_flags = *flags;
found = true;
return false;
}
@@ -406,8 +405,8 @@ std::unique_ptr<SymbolTable::Symbol> AssetManagerSymbolSource::FindById(
return {};
}
- auto value = asset_manager_.GetResource(id.id, true /* may_be_bag */);
- if (!value.has_value()) {
+ auto flags = asset_manager_.GetResourceTypeSpecFlags(id.id);
+ if (!flags.has_value()) {
return {};
}
@@ -422,7 +421,7 @@ std::unique_ptr<SymbolTable::Symbol> AssetManagerSymbolSource::FindById(
}
if (s) {
- s->is_public = (value->flags & android::ResTable_typeSpec::SPEC_PUBLIC) != 0;
+ s->is_public = (*flags & android::ResTable_typeSpec::SPEC_PUBLIC) != 0;
return s;
}
return {};