diff options
-rw-r--r-- | libs/hwui/Patch.cpp | 1 | ||||
-rw-r--r-- | libs/hwui/PatchCache.cpp | 17 | ||||
-rw-r--r-- | media/jni/android_mtp_MtpDatabase.cpp | 11 | ||||
-rw-r--r-- | services/java/com/android/server/pm/Settings.java | 1 |
4 files changed, 23 insertions, 7 deletions
diff --git a/libs/hwui/Patch.cpp b/libs/hwui/Patch.cpp index b2148b04ba92..442e9ba616cf 100644 --- a/libs/hwui/Patch.cpp +++ b/libs/hwui/Patch.cpp @@ -36,6 +36,7 @@ Patch::Patch(): vertices(NULL), verticesCount(0), indexCount(0), hasEmptyQuads(f } Patch::~Patch() { + delete[] vertices; } /////////////////////////////////////////////////////////////////////////////// diff --git a/libs/hwui/PatchCache.cpp b/libs/hwui/PatchCache.cpp index 8a446043b70f..2f2debc89dd1 100644 --- a/libs/hwui/PatchCache.cpp +++ b/libs/hwui/PatchCache.cpp @@ -119,6 +119,17 @@ void PatchCache::remove(Vector<patch_pair_t>& patchesToRemove, Res_png_9patch* p void PatchCache::removeDeferred(Res_png_9patch* patch) { Mutex::Autolock _l(mLock); + + // Assert that patch is not already garbage + size_t count = mGarbage.size(); + for (size_t i = 0; i < count; i++) { + if (patch == mGarbage[i]) { + patch = NULL; + break; + } + } + LOG_ALWAYS_FATAL_IF(patch == NULL); + mGarbage.push(patch); } @@ -143,8 +154,8 @@ void PatchCache::clearGarbage() { for (size_t i = 0; i < patchesToRemove.size(); i++) { const patch_pair_t& pair = patchesToRemove[i]; - // Add a new free block to the list - const Patch* patch = pair.getSecond(); + // Release the patch and mark the space in the free list + Patch* patch = pair.getSecond(); BufferBlock* block = new BufferBlock(patch->offset, patch->getSize()); block->next = mFreeBlocks; mFreeBlocks = block; @@ -152,6 +163,7 @@ void PatchCache::clearGarbage() { mSize -= patch->getSize(); mCache.remove(*pair.getFirst()); + delete patch; } #if DEBUG_PATCHES @@ -216,6 +228,7 @@ void PatchCache::setupMesh(Patch* newMesh, TextureVertex* vertices) { } else { mFreeBlocks = block->next; } + delete block; } else { // Resize the block now that it's occupied block->offset += size; diff --git a/media/jni/android_mtp_MtpDatabase.cpp b/media/jni/android_mtp_MtpDatabase.cpp index 72ce3cce0325..8129c0dfe711 100644 --- a/media/jni/android_mtp_MtpDatabase.cpp +++ b/media/jni/android_mtp_MtpDatabase.cpp @@ -17,11 +17,12 @@ #define LOG_TAG "MtpDatabaseJNI" #include "utils/Log.h" -#include <stdio.h> #include <assert.h> +#include <fcntl.h> +#include <inttypes.h> #include <limits.h> +#include <stdio.h> #include <unistd.h> -#include <fcntl.h> #include "jni.h" #include "JNIHelp.h" @@ -388,7 +389,7 @@ MtpResponseCode MyMtpDatabase::getObjectPropertyValue(MtpObjectHandle handle, // release date is stored internally as just the year if (property == MTP_PROPERTY_ORIGINAL_RELEASE_DATE) { char date[20]; - snprintf(date, sizeof(date), "%04lld0101T000000", longValue); + snprintf(date, sizeof(date), "%04" PRId64 "0101T000000", longValue); packet.putString(date); goto out; } @@ -645,7 +646,7 @@ MtpResponseCode MyMtpDatabase::setDevicePropertyValue(MtpDeviceProperty property return result; } -MtpResponseCode MyMtpDatabase::resetDeviceProperty(MtpDeviceProperty property) { +MtpResponseCode MyMtpDatabase::resetDeviceProperty(MtpDeviceProperty /*property*/) { return -1; } @@ -1090,7 +1091,7 @@ android_mtp_MtpDatabase_finalize(JNIEnv *env, jobject thiz) } static jstring -android_mtp_MtpPropertyGroup_format_date_time(JNIEnv *env, jobject thiz, jlong seconds) +android_mtp_MtpPropertyGroup_format_date_time(JNIEnv *env, jobject /*thiz*/, jlong seconds) { char date[20]; formatDateTime(seconds, date, sizeof(date)); diff --git a/services/java/com/android/server/pm/Settings.java b/services/java/com/android/server/pm/Settings.java index e59940950136..ed025e1160d8 100644 --- a/services/java/com/android/server/pm/Settings.java +++ b/services/java/com/android/server/pm/Settings.java @@ -1427,6 +1427,7 @@ final class Settings { // FROM NATIVE CODE. AT THE MOMENT, LOOK AT THE FOLLOWING SOURCES: // system/core/run-as/run-as.c // system/core/sdcard/sdcard.c + // external/libselinux/src/android.c:package_info_init() // sb.setLength(0); sb.append(ai.packageName); |