diff options
author | Derek Sollenberger <djsollen@google.com> | 2015-02-12 14:10:21 -0500 |
---|---|---|
committer | Derek Sollenberger <djsollen@google.com> | 2015-03-13 08:05:55 -0400 |
commit | ee248599d49a15fc207c5aeb0b90ec263cc1d600 (patch) | |
tree | abb62a362ef1962a3097a586b638c1d7efc93a31 /core/jni | |
parent | 247dc6e125783b31f5c9a2cbccb34bd2ac575e6d (diff) | |
download | frameworks_base-ee248599d49a15fc207c5aeb0b90ec263cc1d600.zip frameworks_base-ee248599d49a15fc207c5aeb0b90ec263cc1d600.tar.gz frameworks_base-ee248599d49a15fc207c5aeb0b90ec263cc1d600.tar.bz2 |
Refactor DisplayList path caching.
This removes dependence on SkPath ptrs that HWUI does not control
the lifecycle of. This clears up some errors where the paths are
not generated from Java, but rather the Skia test suites.
Cherry-pick of a change that originally landed in master-skia and is
dependent on a skia merge (ag/655422).
Change-Id: I41b9797a2b0af5d6b4ea51891565469d4f1d832d
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android/graphics/Path.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/core/jni/android/graphics/Path.cpp b/core/jni/android/graphics/Path.cpp index 831ce09..f7b5dc2 100644 --- a/core/jni/android/graphics/Path.cpp +++ b/core/jni/android/graphics/Path.cpp @@ -27,7 +27,7 @@ #include "SkPath.h" #include "SkPathOps.h" -#include <ResourceCache.h> +#include <Caches.h> #include <vector> #include <map> @@ -38,11 +38,11 @@ public: static void finalizer(JNIEnv* env, jobject clazz, jlong objHandle) { SkPath* obj = reinterpret_cast<SkPath*>(objHandle); - if (android::uirenderer::ResourceCache::hasInstance()) { - android::uirenderer::ResourceCache::getInstance().destructor(obj); - } else { - delete obj; + // Purge entries from the HWUI path cache if this path's data is unique + if (obj->unique() && android::uirenderer::Caches::hasInstance()) { + android::uirenderer::Caches::getInstance().pathCache.removeDeferred(obj); } + delete obj; } static jlong init1(JNIEnv* env, jobject clazz) { |