summaryrefslogtreecommitdiff
path: root/libs/androidfw/LoadedArsc.cpp
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-02-11 03:55:13 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-02-11 03:55:13 +0000
commit44b8309ea2bac7d912a708fe6c45e47fba483c9a (patch)
treec97681597075c04f7f6c1aa41fc9a9fb244dc079 /libs/androidfw/LoadedArsc.cpp
parent4614e4f22c3fb988f17c457224fb5b262ed06a38 (diff)
parentc92c4dd6c6442d0876261ec3e634937f16edb3c5 (diff)
Merge "Surface <overlayable> info in Java AssetManager"
Diffstat (limited to 'libs/androidfw/LoadedArsc.cpp')
-rw-r--r--libs/androidfw/LoadedArsc.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/androidfw/LoadedArsc.cpp b/libs/androidfw/LoadedArsc.cpp
index bdd47061054a..72873abc6a42 100644
--- a/libs/androidfw/LoadedArsc.cpp
+++ b/libs/androidfw/LoadedArsc.cpp
@@ -598,6 +598,13 @@ std::unique_ptr<const LoadedPackage> LoadedPackage::Load(const Chunk& chunk,
std::string actor;
util::ReadUtf16StringFromDevice(header->actor, arraysize(header->actor), &actor);
+ if (loaded_package->overlayable_map_.find(name) !=
+ loaded_package->overlayable_map_.end()) {
+ LOG(ERROR) << "Multiple <overlayable> blocks with the same name '" << name << "'.";
+ return {};
+ }
+ loaded_package->overlayable_map_.emplace(name, actor);
+
// Iterate over the overlayable policy chunks contained within the overlayable chunk data
ChunkIterator overlayable_iter(child_chunk.data_ptr(), child_chunk.data_size());
while (overlayable_iter.HasNext()) {