summaryrefslogtreecommitdiff
path: root/libs/androidfw/AssetManager.cpp
diff options
context:
space:
mode:
author Adam Lesinski <adamlesinski@google.com> 2014-12-03 17:44:17 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2014-12-03 17:44:18 +0000
commita2b5067aeef5b2d68a7a2f7b4edc7ee0908b5d5b (patch)
treedb4b1a0c53a697fb010a6feba69e9b2bb11250fd /libs/androidfw/AssetManager.cpp
parentabdaa32dd79c915d0e419560c8eaa64e3d946b77 (diff)
parentcb7b63d928cd562ea66d10d816056b984f50193a (diff)
Merge "RRO: prevent duplicate system overlays"
Diffstat (limited to 'libs/androidfw/AssetManager.cpp')
-rw-r--r--libs/androidfw/AssetManager.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/androidfw/AssetManager.cpp b/libs/androidfw/AssetManager.cpp
index 6188edbb2c8f..25cd3632bfdb 100644
--- a/libs/androidfw/AssetManager.cpp
+++ b/libs/androidfw/AssetManager.cpp
@@ -611,6 +611,11 @@ FileType AssetManager::getFileType(const char* fileName)
}
bool AssetManager::appendPathToResTable(const asset_path& ap) const {
+ // skip those ap's that correspond to system overlays
+ if (ap.isSystemOverlay) {
+ return true;
+ }
+
Asset* ass = NULL;
ResTable* sharedRes = NULL;
bool shared = true;
@@ -796,6 +801,7 @@ void AssetManager::addSystemOverlays(const char* pathOverlaysList,
oap.path = String8(buf, space - buf);
oap.type = kFileTypeRegular;
oap.idmap = String8(space + 1, newline - space - 1);
+ oap.isSystemOverlay = true;
Asset* oass = const_cast<AssetManager*>(this)->
openNonAssetInPathLocked("resources.arsc",