summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jean-Baptiste Queru <jbq@google.com> 2012-08-29 12:00:10 -0700
committer Android Git Automerger <android-git-automerger@android.com> 2012-08-29 12:00:10 -0700
commit38f197863a07cd600b45d752fdfa949d8b2e6fa6 (patch)
tree53ba9890729b7876af7eacb284d13c9ff6fe5fcf
parentc88a80a1d7a35eaefb54d17b60e9d3a07b800e82 (diff)
parent14c0c989d21531056a5d0a0739c3ffdd1b04b295 (diff)
am 14c0c989: am 4ba4caed: Merge "Fix SkBitmap::fPixels not being locked correctly"
* commit '14c0c989d21531056a5d0a0739c3ffdd1b04b295': Fix SkBitmap::fPixels not being locked correctly
-rw-r--r--core/jni/android/graphics/Bitmap.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index 3c27caf65c7f..1bba5b434477 100644
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -298,8 +298,18 @@ static bool Bitmap_compress(JNIEnv* env, jobject clazz, SkBitmap* bitmap,
}
bool success = false;
- SkWStream* strm = CreateJavaOutputStreamAdaptor(env, jstream, jstorage);
- if (NULL != strm) {
+ if (NULL != bitmap) {
+ SkAutoLockPixels alp(*bitmap);
+
+ if (NULL == bitmap->getPixels()) {
+ return false;
+ }
+
+ SkWStream* strm = CreateJavaOutputStreamAdaptor(env, jstream, jstorage);
+ if (NULL == strm) {
+ return false;
+ }
+
SkImageEncoder* encoder = SkImageEncoder::Create(fm);
if (NULL != encoder) {
success = encoder->encodeStream(strm, *bitmap, quality);