diff options
| author | 2019-02-11 03:55:13 +0000 | |
|---|---|---|
| committer | 2019-02-11 03:55:13 +0000 | |
| commit | 44b8309ea2bac7d912a708fe6c45e47fba483c9a (patch) | |
| tree | c97681597075c04f7f6c1aa41fc9a9fb244dc079 /libs/androidfw/LoadedArsc.cpp | |
| parent | 4614e4f22c3fb988f17c457224fb5b262ed06a38 (diff) | |
| parent | c92c4dd6c6442d0876261ec3e634937f16edb3c5 (diff) | |
Merge "Surface <overlayable> info in Java AssetManager"
Diffstat (limited to 'libs/androidfw/LoadedArsc.cpp')
| -rw-r--r-- | libs/androidfw/LoadedArsc.cpp | 7 |
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()) { |