From ed207b92747234eac88dd3664ecfb535e45d8ed1 Mon Sep 17 00:00:00 2001 From: John Reck Date: Fri, 10 Apr 2015 13:52:57 -0700 Subject: Change how Java Bitmaps are accessed in a few places Stop assuming that a Java Bitmap has a SkBitmap* that has some externally managed lifecycle, and instead switch a bunch of users to accessing the bitmap by providing their own SkBitmap* on which to set the (ref counted!) SkPixelRef* instead Attempt #2 to land this, original issue was in getSkBitmap and should be fixed Change-Id: I0fd9e193968b41e5597784140d56b4885906864a --- rs/jni/android_renderscript_RenderScript.cpp | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) (limited to 'rs') diff --git a/rs/jni/android_renderscript_RenderScript.cpp b/rs/jni/android_renderscript_RenderScript.cpp index cbe87fc..ae48a5f 100644 --- a/rs/jni/android_renderscript_RenderScript.cpp +++ b/rs/jni/android_renderscript_RenderScript.cpp @@ -1102,9 +1102,8 @@ static jlong nAllocationCreateFromBitmap(JNIEnv *_env, jobject _this, jlong con, jlong type, jint mip, jobject jbitmap, jint usage) { - SkBitmap const * nativeBitmap = - GraphicsJNI::getSkBitmap(_env, jbitmap); - const SkBitmap& bitmap(*nativeBitmap); + SkBitmap bitmap; + GraphicsJNI::getSkBitmap(_env, jbitmap, &bitmap); bitmap.lockPixels(); const void* ptr = bitmap.getPixels(); @@ -1119,9 +1118,8 @@ static jlong nAllocationCreateBitmapBackedAllocation(JNIEnv *_env, jobject _this, jlong con, jlong type, jint mip, jobject jbitmap, jint usage) { - SkBitmap const * nativeBitmap = - GraphicsJNI::getSkBitmap(_env, jbitmap); - const SkBitmap& bitmap(*nativeBitmap); + SkBitmap bitmap; + GraphicsJNI::getSkBitmap(_env, jbitmap, &bitmap); bitmap.lockPixels(); const void* ptr = bitmap.getPixels(); @@ -1136,9 +1134,8 @@ static jlong nAllocationCubeCreateFromBitmap(JNIEnv *_env, jobject _this, jlong con, jlong type, jint mip, jobject jbitmap, jint usage) { - SkBitmap const * nativeBitmap = - GraphicsJNI::getSkBitmap(_env, jbitmap); - const SkBitmap& bitmap(*nativeBitmap); + SkBitmap bitmap; + GraphicsJNI::getSkBitmap(_env, jbitmap, &bitmap); bitmap.lockPixels(); const void* ptr = bitmap.getPixels(); @@ -1152,9 +1149,8 @@ nAllocationCubeCreateFromBitmap(JNIEnv *_env, jobject _this, jlong con, jlong ty static void nAllocationCopyFromBitmap(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jobject jbitmap) { - SkBitmap const * nativeBitmap = - GraphicsJNI::getSkBitmap(_env, jbitmap); - const SkBitmap& bitmap(*nativeBitmap); + SkBitmap bitmap; + GraphicsJNI::getSkBitmap(_env, jbitmap, &bitmap); int w = bitmap.width(); int h = bitmap.height(); @@ -1169,9 +1165,8 @@ nAllocationCopyFromBitmap(JNIEnv *_env, jobject _this, jlong con, jlong alloc, j static void nAllocationCopyToBitmap(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jobject jbitmap) { - SkBitmap const * nativeBitmap = - GraphicsJNI::getSkBitmap(_env, jbitmap); - const SkBitmap& bitmap(*nativeBitmap); + SkBitmap bitmap; + GraphicsJNI::getSkBitmap(_env, jbitmap, &bitmap); bitmap.lockPixels(); void* ptr = bitmap.getPixels(); -- cgit v1.1