From f8adae1b33b7cfc38b5bdf770e06cae1a6b30b6c Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Thu, 24 May 2018 15:25:08 -0400 Subject: [PATCH] Cleanup Bitmap#recycle Test: Build, CTS mNativePtr can never be 0 (it is final, and the constructor prevents setting it to 0), so do not check for it. nativeRecycle only ever returns true, so make it return void. Change-Id: Ib94c0304ca7303d6899f085e64be7c051908d173 --- core/jni/android/graphics/Bitmap.cpp | 5 ++--- graphics/java/android/graphics/Bitmap.java | 13 ++++--------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp index 735232424c554..4f318ff37cea7 100755 --- a/core/jni/android/graphics/Bitmap.cpp +++ b/core/jni/android/graphics/Bitmap.cpp @@ -851,10 +851,9 @@ static jlong Bitmap_getNativeFinalizer(JNIEnv*, jobject) { return static_cast(reinterpret_cast(&Bitmap_destruct)); } -static jboolean Bitmap_recycle(JNIEnv* env, jobject, jlong bitmapHandle) { +static void Bitmap_recycle(JNIEnv* env, jobject, jlong bitmapHandle) { LocalScopedBitmap bitmap(bitmapHandle); bitmap->freePixels(); - return JNI_TRUE; } static void Bitmap_reconfigure(JNIEnv* env, jobject clazz, jlong bitmapHandle, @@ -1600,7 +1599,7 @@ static const JNINativeMethod gBitmapMethods[] = { { "nativeCopyAshmemConfig", "(JI)Landroid/graphics/Bitmap;", (void*)Bitmap_copyAshmemConfig }, { "nativeGetNativeFinalizer", "()J", (void*)Bitmap_getNativeFinalizer }, - { "nativeRecycle", "(J)Z", (void*)Bitmap_recycle }, + { "nativeRecycle", "(J)V", (void*)Bitmap_recycle }, { "nativeReconfigure", "(JIIIZ)V", (void*)Bitmap_reconfigure }, { "nativeCompress", "(JIILjava/io/OutputStream;[B)Z", (void*)Bitmap_compress }, diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java index d6c119fbdd201..0ff958fdadd53 100644 --- a/graphics/java/android/graphics/Bitmap.java +++ b/graphics/java/android/graphics/Bitmap.java @@ -344,14 +344,9 @@ public final class Bitmap implements Parcelable { * there are no more references to this bitmap. */ public void recycle() { - if (!mRecycled && mNativePtr != 0) { - if (nativeRecycle(mNativePtr)) { - // return value indicates whether native pixel object was actually recycled. - // false indicates that it is still in use at the native level and these - // objects should not be collected now. They will be collected later when the - // Bitmap itself is collected. - mNinePatchChunk = null; - } + if (!mRecycled) { + nativeRecycle(mNativePtr); + mNinePatchChunk = null; mRecycled = true; } } @@ -2052,7 +2047,7 @@ public final class Bitmap implements Parcelable { private static native Bitmap nativeCopyAshmem(long nativeSrcBitmap); private static native Bitmap nativeCopyAshmemConfig(long nativeSrcBitmap, int nativeConfig); private static native long nativeGetNativeFinalizer(); - private static native boolean nativeRecycle(long nativeBitmap); + private static native void nativeRecycle(long nativeBitmap); private static native void nativeReconfigure(long nativeBitmap, int width, int height, int config, boolean isPremultiplied);