From adf62b3ebc8ae5e3e76cf6cfce978e8d1ca5bf8e Mon Sep 17 00:00:00 2001 From: Diego Perez Date: Mon, 14 Mar 2016 09:31:07 +0000 Subject: [PATCH] Do not deallocate on Bitmap.recycle Layoutlib only disposes the bitmap and doesn't recycle them. This causes a double deallocation that triggers an assertion. This change makes Bitmaps to be only freed when the finalizer is called. Bug: http://b.android.com/203129 Change-Id: Ieabc1443544cfd2b4bf8ba9c8f9a4df8dd6e8220 --- .../bridge/src/android/graphics/Bitmap_Delegate.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java index e3bb3e3187499..6d8ecd7c1b968 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java @@ -67,7 +67,7 @@ public final class Bitmap_Delegate { // ---- delegate manager ---- private static final DelegateManager sManager = - new DelegateManager(Bitmap_Delegate.class); + new DelegateManager<>(Bitmap_Delegate.class); private static long sFinalizer = -1; // ---- delegate helper data ---- @@ -314,7 +314,7 @@ public final class Bitmap_Delegate { @LayoutlibDelegate /*package*/ static boolean nativeRecycle(long nativeBitmap) { - sManager.removeJavaReferenceFor(nativeBitmap); + // In our case reycle() is a no-op. We will let the finalizer to dispose the bitmap. return true; }