Merge "libutils: BlobCache 64 bit compile issues"
This commit is contained in:
commit
280b7d40f5
1 changed files with 14 additions and 13 deletions
|
|
@ -17,6 +17,7 @@
|
||||||
#define LOG_TAG "BlobCache"
|
#define LOG_TAG "BlobCache"
|
||||||
//#define LOG_NDEBUG 0
|
//#define LOG_NDEBUG 0
|
||||||
|
|
||||||
|
#include <inttypes.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
|
@ -54,18 +55,18 @@ BlobCache::BlobCache(size_t maxKeySize, size_t maxValueSize, size_t maxTotalSize
|
||||||
void BlobCache::set(const void* key, size_t keySize, const void* value,
|
void BlobCache::set(const void* key, size_t keySize, const void* value,
|
||||||
size_t valueSize) {
|
size_t valueSize) {
|
||||||
if (mMaxKeySize < keySize) {
|
if (mMaxKeySize < keySize) {
|
||||||
ALOGV("set: not caching because the key is too large: %d (limit: %d)",
|
ALOGV("set: not caching because the key is too large: %zu (limit: %zu)",
|
||||||
keySize, mMaxKeySize);
|
keySize, mMaxKeySize);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mMaxValueSize < valueSize) {
|
if (mMaxValueSize < valueSize) {
|
||||||
ALOGV("set: not caching because the value is too large: %d (limit: %d)",
|
ALOGV("set: not caching because the value is too large: %zu (limit: %zu)",
|
||||||
valueSize, mMaxValueSize);
|
valueSize, mMaxValueSize);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mMaxTotalSize < keySize + valueSize) {
|
if (mMaxTotalSize < keySize + valueSize) {
|
||||||
ALOGV("set: not caching because the combined key/value size is too "
|
ALOGV("set: not caching because the combined key/value size is too "
|
||||||
"large: %d (limit: %d)", keySize + valueSize, mMaxTotalSize);
|
"large: %zu (limit: %zu)", keySize + valueSize, mMaxTotalSize);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (keySize == 0) {
|
if (keySize == 0) {
|
||||||
|
|
@ -94,15 +95,15 @@ void BlobCache::set(const void* key, size_t keySize, const void* value,
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
ALOGV("set: not caching new key/value pair because the "
|
ALOGV("set: not caching new key/value pair because the "
|
||||||
"total cache size limit would be exceeded: %d "
|
"total cache size limit would be exceeded: %zu "
|
||||||
"(limit: %d)",
|
"(limit: %zu)",
|
||||||
keySize + valueSize, mMaxTotalSize);
|
keySize + valueSize, mMaxTotalSize);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mCacheEntries.add(CacheEntry(keyBlob, valueBlob));
|
mCacheEntries.add(CacheEntry(keyBlob, valueBlob));
|
||||||
mTotalSize = newTotalSize;
|
mTotalSize = newTotalSize;
|
||||||
ALOGV("set: created new cache entry with %d byte key and %d byte value",
|
ALOGV("set: created new cache entry with %zu byte key and %zu byte value",
|
||||||
keySize, valueSize);
|
keySize, valueSize);
|
||||||
} else {
|
} else {
|
||||||
// Update the existing cache entry.
|
// Update the existing cache entry.
|
||||||
|
|
@ -116,14 +117,14 @@ void BlobCache::set(const void* key, size_t keySize, const void* value,
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
ALOGV("set: not caching new value because the total cache "
|
ALOGV("set: not caching new value because the total cache "
|
||||||
"size limit would be exceeded: %d (limit: %d)",
|
"size limit would be exceeded: %zu (limit: %zu)",
|
||||||
keySize + valueSize, mMaxTotalSize);
|
keySize + valueSize, mMaxTotalSize);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mCacheEntries.editItemAt(index).setValue(valueBlob);
|
mCacheEntries.editItemAt(index).setValue(valueBlob);
|
||||||
mTotalSize = newTotalSize;
|
mTotalSize = newTotalSize;
|
||||||
ALOGV("set: updated existing cache entry with %d byte key and %d byte "
|
ALOGV("set: updated existing cache entry with %zu byte key and %zu byte "
|
||||||
"value", keySize, valueSize);
|
"value", keySize, valueSize);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -133,7 +134,7 @@ void BlobCache::set(const void* key, size_t keySize, const void* value,
|
||||||
size_t BlobCache::get(const void* key, size_t keySize, void* value,
|
size_t BlobCache::get(const void* key, size_t keySize, void* value,
|
||||||
size_t valueSize) {
|
size_t valueSize) {
|
||||||
if (mMaxKeySize < keySize) {
|
if (mMaxKeySize < keySize) {
|
||||||
ALOGV("get: not searching because the key is too large: %d (limit %d)",
|
ALOGV("get: not searching because the key is too large: %zu (limit %zu)",
|
||||||
keySize, mMaxKeySize);
|
keySize, mMaxKeySize);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -141,7 +142,7 @@ size_t BlobCache::get(const void* key, size_t keySize, void* value,
|
||||||
CacheEntry dummyEntry(dummyKey, NULL);
|
CacheEntry dummyEntry(dummyKey, NULL);
|
||||||
ssize_t index = mCacheEntries.indexOf(dummyEntry);
|
ssize_t index = mCacheEntries.indexOf(dummyEntry);
|
||||||
if (index < 0) {
|
if (index < 0) {
|
||||||
ALOGV("get: no cache entry found for key of size %d", keySize);
|
ALOGV("get: no cache entry found for key of size %zu", keySize);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -150,10 +151,10 @@ size_t BlobCache::get(const void* key, size_t keySize, void* value,
|
||||||
sp<Blob> valueBlob(mCacheEntries[index].getValue());
|
sp<Blob> valueBlob(mCacheEntries[index].getValue());
|
||||||
size_t valueBlobSize = valueBlob->getSize();
|
size_t valueBlobSize = valueBlob->getSize();
|
||||||
if (valueBlobSize <= valueSize) {
|
if (valueBlobSize <= valueSize) {
|
||||||
ALOGV("get: copying %d bytes to caller's buffer", valueBlobSize);
|
ALOGV("get: copying %zu bytes to caller's buffer", valueBlobSize);
|
||||||
memcpy(value, valueBlob->getData(), valueBlobSize);
|
memcpy(value, valueBlob->getData(), valueBlobSize);
|
||||||
} else {
|
} else {
|
||||||
ALOGV("get: caller's buffer is too small for value: %d (needs %d)",
|
ALOGV("get: caller's buffer is too small for value: %zu (needs %zu)",
|
||||||
valueSize, valueBlobSize);
|
valueSize, valueBlobSize);
|
||||||
}
|
}
|
||||||
return valueBlobSize;
|
return valueBlobSize;
|
||||||
|
|
@ -229,7 +230,7 @@ status_t BlobCache::unflatten(void const* buffer, size_t size) {
|
||||||
}
|
}
|
||||||
const Header* header = reinterpret_cast<const Header*>(buffer);
|
const Header* header = reinterpret_cast<const Header*>(buffer);
|
||||||
if (header->mMagicNumber != blobCacheMagic) {
|
if (header->mMagicNumber != blobCacheMagic) {
|
||||||
ALOGE("unflatten: bad magic number: %d", header->mMagicNumber);
|
ALOGE("unflatten: bad magic number: %" PRIu32, header->mMagicNumber);
|
||||||
return BAD_VALUE;
|
return BAD_VALUE;
|
||||||
}
|
}
|
||||||
if (header->mBlobCacheVersion != blobCacheVersion ||
|
if (header->mBlobCacheVersion != blobCacheVersion ||
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue