From 00b314436f4fdfada4bbf1e79ec12e9fa38aeaf1 Mon Sep 17 00:00:00 2001 From: Narayan Kamath Date: Mon, 27 Jan 2014 17:32:37 +0000 Subject: Change ResourceType cookies to int32_t. Also change the order of parameters in ResTable constructors to avoid ambiguity. Change-Id: If7bfa1f640dddca39b9f26a3ce84081fa7b6e6e3 --- include/androidfw/ResourceTypes.h | 13 ++++++------- libs/androidfw/AssetManager.cpp | 6 +++--- libs/androidfw/ResourceTypes.cpp | 28 ++++++++++++++-------------- tools/aapt/AaptAssets.cpp | 2 +- tools/aapt/Resource.cpp | 2 +- 5 files changed, 25 insertions(+), 26 deletions(-) diff --git a/include/androidfw/ResourceTypes.h b/include/androidfw/ResourceTypes.h index 5151b06..6799766 100644 --- a/include/androidfw/ResourceTypes.h +++ b/include/androidfw/ResourceTypes.h @@ -1279,14 +1279,13 @@ class ResTable { public: ResTable(); - ResTable(const void* data, size_t size, void* cookie, + ResTable(const void* data, size_t size, const int32_t cookie, bool copyData=false); ~ResTable(); - status_t add(const void* data, size_t size, void* cookie, - bool copyData=false, const void* idmap = NULL); - status_t add(Asset* asset, void* cookie, - bool copyData=false, const void* idmap = NULL); + status_t add(Asset* asset, const int32_t cookie, bool copyData, + const void* idmap); + status_t add(const void *data, size_t size); status_t add(ResTable* src); status_t getError() const; @@ -1534,7 +1533,7 @@ public: // but not the names their entries or types. const ResStringPool* getTableStringBlock(size_t index) const; // Return unique cookie identifier for the given resource table. - void* getTableCookie(size_t index) const; + int32_t getTableCookie(size_t index) const; // Return the configurations (ResTable_config) that we know about void getConfigurations(Vector* configs) const; @@ -1569,7 +1568,7 @@ private: struct PackageGroup; struct bag_set; - status_t add(const void* data, size_t size, void* cookie, + status_t addInternal(const void* data, size_t size, const int32_t cookie, Asset* asset, bool copyData, const Asset* idmap); ssize_t getResourcePackageIndex(uint32_t resID) const; diff --git a/libs/androidfw/AssetManager.cpp b/libs/androidfw/AssetManager.cpp index 785e5d4..501b83e 100644 --- a/libs/androidfw/AssetManager.cpp +++ b/libs/androidfw/AssetManager.cpp @@ -335,7 +335,7 @@ bool AssetManager::createIdmapFileLocked(const String8& originalPath, const Stri ALOGW("failed to find resources.arsc in %s\n", ap.path.string()); goto error; } - tables[i].add(ass, (void*)1, false); + tables[i].add(ass, 1, false /* copyData */, NULL /* idMap */); } if (!getZipEntryCrcLocked(originalPath, "resources.arsc", &originalCrc)) { @@ -682,7 +682,7 @@ const ResTable* AssetManager::getResTable(bool required) const // can quickly copy it out for others. ALOGV("Creating shared resources for %s", ap.path.string()); sharedRes = new ResTable(); - sharedRes->add(ass, (void*)(i+1), false, idmap); + sharedRes->add(ass, i + 1, false, idmap); sharedRes = const_cast(this)-> mZipSet.setZipResourceTable(ap.path, sharedRes); } @@ -706,7 +706,7 @@ const ResTable* AssetManager::getResTable(bool required) const rt->add(sharedRes); } else { ALOGV("Parsing resources for %s", ap.path.string()); - rt->add(ass, (void*)(i+1), !shared, idmap); + rt->add(ass, i + 1, !shared, idmap); } if (!shared) { diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index 1cc3563..72d331c 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -66,9 +66,9 @@ namespace android { // size measured in sizeof(uint32_t) #define IDMAP_HEADER_SIZE (ResTable::IDMAP_HEADER_SIZE_BYTES / sizeof(uint32_t)) -static void printToLogFunc(void* cookie, const char* txt) +static void printToLogFunc(int32_t cookie, const char* txt) { - ALOGV("%s", txt); + ALOGV("[cookie=%d] %s", cookie, txt); } // Standard C isspace() is only required to look at the low byte of its input, so @@ -2461,7 +2461,7 @@ struct ResTable::Header size_t size; const uint8_t* dataEnd; size_t index; - void* cookie; + int32_t cookie; ResStringPool values; uint32_t* resourceIDMap; @@ -2860,12 +2860,12 @@ ResTable::ResTable() //ALOGI("Creating ResTable %p\n", this); } -ResTable::ResTable(const void* data, size_t size, void* cookie, bool copyData) +ResTable::ResTable(const void* data, size_t size, const int32_t cookie, bool copyData) : mError(NO_INIT) { memset(&mParams, 0, sizeof(mParams)); memset(mPackageMap, 0, sizeof(mPackageMap)); - add(data, size, cookie, copyData); + addInternal(data, size, cookie, NULL /* asset */, copyData, NULL /* idMap */); LOG_FATAL_IF(mError != NO_ERROR, "Error parsing resource table"); //ALOGI("Creating ResTable %p\n", this); } @@ -2881,13 +2881,12 @@ inline ssize_t ResTable::getResourcePackageIndex(uint32_t resID) const return ((ssize_t)mPackageMap[Res_GETPACKAGE(resID)+1])-1; } -status_t ResTable::add(const void* data, size_t size, void* cookie, bool copyData, - const void* idmap) -{ - return add(data, size, cookie, NULL, copyData, reinterpret_cast(idmap)); +status_t ResTable::add(const void* data, size_t size) { + return addInternal(data, size, 0 /* cookie */, NULL /* asset */, + false /* copyData */, NULL /* idMap */); } -status_t ResTable::add(Asset* asset, void* cookie, bool copyData, const void* idmap) +status_t ResTable::add(Asset* asset, const int32_t cookie, bool copyData, const void* idmap) { const void* data = asset->getBuffer(true); if (data == NULL) { @@ -2895,7 +2894,8 @@ status_t ResTable::add(Asset* asset, void* cookie, bool copyData, const void* id return UNKNOWN_ERROR; } size_t size = (size_t)asset->getLength(); - return add(data, size, cookie, asset, copyData, reinterpret_cast(idmap)); + return addInternal(data, size, cookie, asset, copyData, + reinterpret_cast(idmap)); } status_t ResTable::add(ResTable* src) @@ -2922,7 +2922,7 @@ status_t ResTable::add(ResTable* src) return mError; } -status_t ResTable::add(const void* data, size_t size, void* cookie, +status_t ResTable::addInternal(const void* data, size_t size, const int32_t cookie, Asset* asset, bool copyData, const Asset* idmap) { if (!data) return NO_ERROR; @@ -2945,7 +2945,7 @@ status_t ResTable::add(const void* data, size_t size, void* cookie, const bool notDeviceEndian = htods(0xf0) != 0xf0; LOAD_TABLE_NOISY( - ALOGV("Adding resources to ResTable: data=%p, size=0x%x, cookie=%p, asset=%p, copy=%d " + ALOGV("Adding resources to ResTable: data=%p, size=0x%x, cookie=%d, asset=%p, copy=%d " "idmap=%p\n", data, size, cookie, asset, copyData, idmap)); if (copyData || notDeviceEndian) { @@ -4930,7 +4930,7 @@ const ResStringPool* ResTable::getTableStringBlock(size_t index) const return &mHeaders[index]->values; } -void* ResTable::getTableCookie(size_t index) const +int32_t ResTable::getTableCookie(size_t index) const { return mHeaders[index]->cookie; } diff --git a/tools/aapt/AaptAssets.cpp b/tools/aapt/AaptAssets.cpp index f11e9c2..e412c27 100644 --- a/tools/aapt/AaptAssets.cpp +++ b/tools/aapt/AaptAssets.cpp @@ -2654,7 +2654,7 @@ status_t AaptAssets::addIncludedResources(const sp& file) { const ResTable& res = getIncludedResources(); // XXX dirty! - return const_cast(res).add(file->getData(), file->getSize(), NULL); + return const_cast(res).add(file->getData(), file->getSize()); } const ResTable& AaptAssets::getIncludedResources() const diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp index 8f43661..a390e42 100644 --- a/tools/aapt/Resource.cpp +++ b/tools/aapt/Resource.cpp @@ -1320,7 +1320,7 @@ status_t buildResources(Bundle* bundle, const sp& assets) } // Read resources back in, - finalResTable.add(resFile->getData(), resFile->getSize(), NULL); + finalResTable.add(resFile->getData(), resFile->getSize()); #if 0 NOISY( -- cgit v1.1