diff options
author | Bart Sears <bsears@google.com> | 2011-09-25 14:30:21 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-25 14:30:21 -0700 |
commit | b6377170960d40e66858d8b4d335a95eac773762 (patch) | |
tree | b0737e61622e7184ae35abf71702c9bb87e5def4 /core/jni | |
parent | 56c58f66b97d22fe7e7de1f7d9548bcbe1973029 (diff) | |
download | frameworks_base-b6377170960d40e66858d8b4d335a95eac773762.zip frameworks_base-b6377170960d40e66858d8b4d335a95eac773762.tar.gz frameworks_base-b6377170960d40e66858d8b4d335a95eac773762.tar.bz2 |
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
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android/graphics/Bitmap.cpp | 29 |
1 files changed, 6 insertions, 23 deletions
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;
}
|