@@ -155,7 +155,7 @@ void ResourceCache::decrementRefcountLocked(void* resource) {
155155 }
156156 ref->refCount --;
157157 if (ref->refCount == 0 ) {
158- deleteResourceReference (resource, ref);
158+ deleteResourceReferenceLocked (resource, ref);
159159 }
160160}
161161
@@ -201,7 +201,7 @@ void ResourceCache::destructorLocked(SkPath* resource) {
201201 }
202202 ref->destroyed = true ;
203203 if (ref->refCount == 0 ) {
204- deleteResourceReference (resource, ref);
204+ deleteResourceReferenceLocked (resource, ref);
205205 }
206206}
207207
@@ -223,7 +223,7 @@ void ResourceCache::destructorLocked(SkBitmap* resource) {
223223 }
224224 ref->destroyed = true ;
225225 if (ref->refCount == 0 ) {
226- deleteResourceReference (resource, ref);
226+ deleteResourceReferenceLocked (resource, ref);
227227 }
228228}
229229
@@ -242,7 +242,7 @@ void ResourceCache::destructorLocked(SkiaShader* resource) {
242242 }
243243 ref->destroyed = true ;
244244 if (ref->refCount == 0 ) {
245- deleteResourceReference (resource, ref);
245+ deleteResourceReferenceLocked (resource, ref);
246246 }
247247}
248248
@@ -261,7 +261,7 @@ void ResourceCache::destructorLocked(SkiaColorFilter* resource) {
261261 }
262262 ref->destroyed = true ;
263263 if (ref->refCount == 0 ) {
264- deleteResourceReference (resource, ref);
264+ deleteResourceReferenceLocked (resource, ref);
265265 }
266266}
267267
@@ -284,15 +284,15 @@ void ResourceCache::recycleLocked(SkBitmap* resource) {
284284 }
285285 ref->recycled = true ;
286286 if (ref->refCount == 0 ) {
287- deleteResourceReference (resource, ref);
287+ deleteResourceReferenceLocked (resource, ref);
288288 }
289289}
290290
291291/* *
292292 * This method should only be called while the mLock mutex is held (that mutex is grabbed
293293 * by the various destructor() and recycle() methods which call this method).
294294 */
295- void ResourceCache::deleteResourceReference (void * resource, ResourceReference* ref) {
295+ void ResourceCache::deleteResourceReferenceLocked (void * resource, ResourceReference* ref) {
296296 if (ref->recycled && ref->resourceType == kBitmap ) {
297297 ((SkBitmap*) resource)->setPixels (NULL , NULL );
298298 }
@@ -326,6 +326,7 @@ void ResourceCache::deleteResourceReference(void* resource, ResourceReference* r
326326 break ;
327327 case kLayer : {
328328 Layer* layer = (Layer*) resource;
329+ layer->freeResourcesLocked ();
329330 delete layer;
330331 }
331332 break ;
0 commit comments