diff options
author | Stan Iliev <stani@google.com> | 2018-08-30 18:56:41 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-08-30 18:56:41 +0000 |
commit | e6cfb09cc4938078d14b1b4abca1678ac8fb170c (patch) | |
tree | c71f82bc74a53be28d30c88ca3b8f84b666578de /libs/hwui/ResourceCache.cpp | |
parent | c72888de5dec8327da3d1a8d328f2c92a629d91e (diff) | |
parent | 867c43de0544217d26c3ee18f4d6603bb2ea97ce (diff) |
Merge "Revert "TextureView Vulkan support and optimized OpenGL draw""
Diffstat (limited to 'libs/hwui/ResourceCache.cpp')
-rw-r--r-- | libs/hwui/ResourceCache.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/libs/hwui/ResourceCache.cpp b/libs/hwui/ResourceCache.cpp index 65bee476f14d..464a58d0c0f8 100644 --- a/libs/hwui/ResourceCache.cpp +++ b/libs/hwui/ResourceCache.cpp @@ -15,6 +15,7 @@ */ #include "ResourceCache.h" +#include "Caches.h" namespace android { @@ -111,9 +112,13 @@ void ResourceCache::destructorLocked(Res_png_9patch* resource) { ResourceReference* ref = index >= 0 ? mCache->valueAt(index) : nullptr; if (ref == nullptr) { // If we're not tracking this resource, just delete it - // A Res_png_9patch is actually an array of byte that's larger - // than sizeof(Res_png_9patch). It must be freed as an array. - delete[](int8_t*) resource; + if (Caches::hasInstance()) { + // DEAD CODE + } else { + // A Res_png_9patch is actually an array of byte that's larger + // than sizeof(Res_png_9patch). It must be freed as an array. + delete[](int8_t*) resource; + } return; } ref->destroyed = true; @@ -130,10 +135,14 @@ void ResourceCache::deleteResourceReferenceLocked(const void* resource, Resource if (ref->destroyed) { switch (ref->resourceType) { case kNinePatch: { - // A Res_png_9patch is actually an array of byte that's larger - // than sizeof(Res_png_9patch). It must be freed as an array. - int8_t* patch = (int8_t*)resource; - delete[] patch; + if (Caches::hasInstance()) { + // DEAD CODE + } else { + // A Res_png_9patch is actually an array of byte that's larger + // than sizeof(Res_png_9patch). It must be freed as an array. + int8_t* patch = (int8_t*)resource; + delete[] patch; + } } break; } } |