summaryrefslogtreecommitdiffstats
path: root/core/jni/android/graphics/BitmapRegionDecoder.cpp
diff options
context:
space:
mode:
authorPatrick Dubroy <dubroy@google.com>2010-12-01 11:23:13 -0800
committerPatrick Dubroy <dubroy@google.com>2010-12-14 16:50:50 -0800
commite4ac2d6b5723c95e648c489b187ddde449452c13 (patch)
treea783470220e1840761dc6696f3e5f4cc7870054b /core/jni/android/graphics/BitmapRegionDecoder.cpp
parent89f8d63a991f2dc4a961ad92ab5bb6b6c1ecd60f (diff)
downloadframeworks_base-e4ac2d6b5723c95e648c489b187ddde449452c13.zip
frameworks_base-e4ac2d6b5723c95e648c489b187ddde449452c13.tar.gz
frameworks_base-e4ac2d6b5723c95e648c489b187ddde449452c13.tar.bz2
Allocate bitmap backing buffers in the Java heap.
Change-Id: I60f6ccff13357c1c518e9d56b02fe0171637edd1
Diffstat (limited to 'core/jni/android/graphics/BitmapRegionDecoder.cpp')
-rw-r--r--core/jni/android/graphics/BitmapRegionDecoder.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/core/jni/android/graphics/BitmapRegionDecoder.cpp b/core/jni/android/graphics/BitmapRegionDecoder.cpp
index 91a8202..1e00b71 100644
--- a/core/jni/android/graphics/BitmapRegionDecoder.cpp
+++ b/core/jni/android/graphics/BitmapRegionDecoder.cpp
@@ -79,7 +79,7 @@ static jobject doBuildTileIndex(JNIEnv* env, SkStream* stream) {
return nullObjectReturn("SkImageDecoder::Factory returned null");
}
- JavaPixelAllocator *javaAllocator = new JavaPixelAllocator(env, true);
+ JavaPixelAllocator *javaAllocator = new JavaPixelAllocator(env);
decoder->setAllocator(javaAllocator);
JavaMemoryUsageReporter *javaMemoryReporter = new JavaMemoryUsageReporter(env);
decoder->setReporter(javaMemoryReporter);
@@ -241,15 +241,16 @@ static jobject nativeDecodeRegion(JNIEnv* env, jobject, SkBitmapRegionDecoder *b
getMimeTypeString(env, decoder->getFormat()));
}
- // detach bitmap from its autotdeleter, since we want to own it now
+ // detach bitmap from its autodeleter, since we want to own it now
adb.detach();
- SkPixelRef* pr;
- pr = bitmap->pixelRef();
+ SkPixelRef* pr = bitmap->pixelRef();
// promise we will never change our pixels (great for sharing and pictures)
pr->setImmutable();
+
// now create the java bitmap
- return GraphicsJNI::createBitmap(env, bitmap, false, NULL);
+ jbyteArray buff = ((AndroidPixelRef*) pr)->getStorageObj();
+ return GraphicsJNI::createBitmap(env, bitmap, buff, false, NULL, -1);
}
static int nativeGetHeight(JNIEnv* env, jobject, SkBitmapRegionDecoder *brd) {