From b6377170960d40e66858d8b4d335a95eac773762 Mon Sep 17 00:00:00 2001 From: Bart Sears Date: Sun, 25 Sep 2011 14:30:21 -0700 Subject: Revert "Transfer large bitmaps using ashmem. Bug: 5224703" This reverts commit 56c58f66b97d22fe7e7de1f7d9548bcbe1973029 This CL was causing the browser to crash when adding bookmarks, visiting the bookmarks page, and sharing pages (see bug http://b/issue?id=5369231 --- core/jni/android/graphics/Bitmap.cpp | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) (limited to 'core/jni') diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp index da055fc..18bd754 100644 --- a/core/jni/android/graphics/Bitmap.cpp +++ b/core/jni/android/graphics/Bitmap.cpp @@ -392,20 +392,10 @@ static jobject Bitmap_createFromParcel(JNIEnv* env, jobject, jobject parcel) { SkSafeUnref(ctable); size_t size = bitmap->getSize(); - - android::Parcel::ReadableBlob blob; - android::status_t status = p->readBlob(size, &blob); - if (status) { - doThrowRE(env, "Could not read bitmap from parcel blob."); - delete bitmap; - return NULL; - } - bitmap->lockPixels(); - memcpy(bitmap->getPixels(), blob.data(), size); + memcpy(bitmap->getPixels(), p->readInplace(size), size); bitmap->unlockPixels(); - blob.release(); return GraphicsJNI::createBitmap(env, bitmap, buffer, isMutable, NULL, density); } @@ -441,24 +431,17 @@ static jboolean Bitmap_writeToParcel(JNIEnv* env, jobject, } size_t size = bitmap->getSize(); - - android::Parcel::WritableBlob blob; - android::status_t status = p->writeBlob(size, &blob); - if (status) { - doThrowRE(env, "Could not write bitmap to parcel blob."); - return false; - } - bitmap->lockPixels(); + void* pDst = p->writeInplace(size); + const void* pSrc = bitmap->getPixels(); + if (pSrc == NULL) { - memset(blob.data(), 0, size); + memset(pDst, 0, size); } else { - memcpy(blob.data(), pSrc, size); + memcpy(pDst, pSrc, size); } bitmap->unlockPixels(); - - blob.release(); return true; } -- cgit v1.1