AssetManager cookies should be int32_t and not void*.
Cookies are really indices into vectors and arrays, so they don't need to be void*. We choose int32_t instead of size_t to allow their width to be well specified. Change-Id: I319f271bd4f102dee7cb9f00df4c75ea697456f5
This commit is contained in:
parent
467113c6fc
commit
a9d5701b03
@ -92,7 +92,7 @@ public:
|
||||
* then on success, *cookie is set to the value corresponding to the
|
||||
* newly-added asset source.
|
||||
*/
|
||||
bool addAssetPath(const String8& path, void** cookie);
|
||||
bool addAssetPath(const String8& path, int32_t* cookie);
|
||||
|
||||
/*
|
||||
* Convenience for adding the standard system assets. Uses the
|
||||
@ -103,17 +103,17 @@ public:
|
||||
/*
|
||||
* Iterate over the asset paths in this manager. (Previously
|
||||
* added via addAssetPath() and addDefaultAssets().) On first call,
|
||||
* 'cookie' must be NULL, resulting in the first cookie being returned.
|
||||
* Each next cookie will be returned there-after, until NULL indicating
|
||||
* 'cookie' must be 0, resulting in the first cookie being returned.
|
||||
* Each next cookie will be returned there-after, until -1 indicating
|
||||
* the end has been reached.
|
||||
*/
|
||||
void* nextAssetPath(void* cookie) const;
|
||||
int32_t nextAssetPath(const int32_t cookie) const;
|
||||
|
||||
/*
|
||||
* Return an asset path in the manager. 'which' must be between 0 and
|
||||
* countAssetPaths().
|
||||
*/
|
||||
String8 getAssetPath(void* cookie) const;
|
||||
String8 getAssetPath(const int32_t cookie) const;
|
||||
|
||||
/*
|
||||
* Set the current locale and vendor. The locale can change during
|
||||
@ -159,7 +159,7 @@ public:
|
||||
* Explicit non-asset file. The file explicitly named by the cookie (the
|
||||
* resource set to look in) and fileName will be opened and returned.
|
||||
*/
|
||||
Asset* openNonAsset(void* cookie, const char* fileName, AccessMode mode);
|
||||
Asset* openNonAsset(const int32_t cookie, const char* fileName, AccessMode mode);
|
||||
|
||||
/*
|
||||
* Open a directory within the asset hierarchy.
|
||||
@ -183,7 +183,7 @@ public:
|
||||
*
|
||||
* To open the top-level directory, pass in "".
|
||||
*/
|
||||
AssetDir* openNonAssetDir(void* cookie, const char* dirName);
|
||||
AssetDir* openNonAssetDir(const int32_t cookie, const char* dirName);
|
||||
|
||||
/*
|
||||
* Get the type of a file in the asset hierarchy. They will either
|
||||
|
@ -165,7 +165,7 @@ AssetManager::~AssetManager(void)
|
||||
delete[] mVendor;
|
||||
}
|
||||
|
||||
bool AssetManager::addAssetPath(const String8& path, void** cookie)
|
||||
bool AssetManager::addAssetPath(const String8& path, int32_t* cookie)
|
||||
{
|
||||
AutoMutex _l(mLock);
|
||||
|
||||
@ -192,7 +192,7 @@ bool AssetManager::addAssetPath(const String8& path, void** cookie)
|
||||
for (size_t i=0; i<mAssetPaths.size(); i++) {
|
||||
if (mAssetPaths[i].path == ap.path) {
|
||||
if (cookie) {
|
||||
*cookie = (void*)(i+1);
|
||||
*cookie = static_cast<int32_t>(i+1);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -205,7 +205,7 @@ bool AssetManager::addAssetPath(const String8& path, void** cookie)
|
||||
|
||||
// new paths are always added at the end
|
||||
if (cookie) {
|
||||
*cookie = (void*)mAssetPaths.size();
|
||||
*cookie = static_cast<int32_t>(mAssetPaths.size());
|
||||
}
|
||||
|
||||
// add overlay packages for /system/framework; apps are handled by the
|
||||
@ -395,17 +395,17 @@ bool AssetManager::addDefaultAssets()
|
||||
return addAssetPath(path, NULL);
|
||||
}
|
||||
|
||||
void* AssetManager::nextAssetPath(void* cookie) const
|
||||
int32_t AssetManager::nextAssetPath(const int32_t cookie) const
|
||||
{
|
||||
AutoMutex _l(mLock);
|
||||
size_t next = ((size_t)cookie)+1;
|
||||
return next > mAssetPaths.size() ? NULL : (void*)next;
|
||||
const size_t next = static_cast<size_t>(cookie) + 1;
|
||||
return next > mAssetPaths.size() ? -1 : next;
|
||||
}
|
||||
|
||||
String8 AssetManager::getAssetPath(void* cookie) const
|
||||
String8 AssetManager::getAssetPath(const int32_t cookie) const
|
||||
{
|
||||
AutoMutex _l(mLock);
|
||||
const size_t which = ((size_t)cookie)-1;
|
||||
const size_t which = static_cast<size_t>(cookie) - 1;
|
||||
if (which < mAssetPaths.size()) {
|
||||
return mAssetPaths[which].path;
|
||||
}
|
||||
@ -575,15 +575,14 @@ Asset* AssetManager::openNonAsset(const char* fileName, AccessMode mode)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Asset* AssetManager::openNonAsset(void* cookie, const char* fileName, AccessMode mode)
|
||||
Asset* AssetManager::openNonAsset(const int32_t cookie, const char* fileName, AccessMode mode)
|
||||
{
|
||||
const size_t which = ((size_t)cookie)-1;
|
||||
const size_t which = static_cast<size_t>(cookie) - 1;
|
||||
|
||||
AutoMutex _l(mLock);
|
||||
|
||||
LOG_FATAL_IF(mAssetPaths.size() == 0, "No assets added to AssetManager");
|
||||
|
||||
|
||||
if (mCacheMode != CACHE_OFF && !mCacheValid)
|
||||
loadFileNameCacheLocked();
|
||||
|
||||
@ -1206,7 +1205,7 @@ AssetDir* AssetManager::openDir(const char* dirName)
|
||||
*
|
||||
* Pass in "" for the root dir.
|
||||
*/
|
||||
AssetDir* AssetManager::openNonAssetDir(void* cookie, const char* dirName)
|
||||
AssetDir* AssetManager::openNonAssetDir(const int32_t cookie, const char* dirName)
|
||||
{
|
||||
AutoMutex _l(mLock);
|
||||
|
||||
@ -1225,7 +1224,7 @@ AssetDir* AssetManager::openNonAssetDir(void* cookie, const char* dirName)
|
||||
|
||||
pMergedInfo = new SortedVector<AssetDir::FileInfo>;
|
||||
|
||||
const size_t which = ((size_t)cookie)-1;
|
||||
const size_t which = static_cast<size_t>(cookie) - 1;
|
||||
|
||||
if (which < mAssetPaths.size()) {
|
||||
const asset_path& ap = mAssetPaths.itemAt(which);
|
||||
|
Loading…
Reference in New Issue
Block a user