summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Strudel <thierry.strudel@intel.com>2014-08-22 11:19:09 -0700
committerPat Tjin <pattjin@google.com>2014-08-22 19:48:27 +0000
commit5474f3396a963196fa6dc05add85429e2358ec1a (patch)
tree831c1db3eadd13248428a831793968095d022206
parentf9220b39533d18b6c79099c32522b3ff712ff89b (diff)
downloadframeworks_base-5474f3396a963196fa6dc05add85429e2358ec1a.zip
frameworks_base-5474f3396a963196fa6dc05add85429e2358ec1a.tar.gz
frameworks_base-5474f3396a963196fa6dc05add85429e2358ec1a.tar.bz2
SurfaceControl: free ref when not used anymore
C standard does not ensure order in which arguments are evaluated leading to faulty behavior in x86 case. Bug: 17206275 Change-Id: I6553c55bcf646d93413135aed733f20b91852735 Signed-off-by: Thierry Strudel <thierry.strudel@intel.com>
-rw-r--r--core/jni/android_view_SurfaceControl.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index 3fb084a..8f30f5d 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -180,7 +180,8 @@ static jobject nativeScreenshotBitmap(JNIEnv* env, jclass clazz,
// takes ownership of ScreenshotClient
SkMallocPixelRef* pixels = SkMallocPixelRef::NewWithProc(screenshotInfo,
(size_t) rowBytes, NULL, (void*) screenshot->getPixels(), &DeleteScreenshot,
- (void*) (screenshot.detach()));
+ (void*) (screenshot.get()));
+ screenshot.detach();
pixels->setImmutable();
bitmap->setPixelRef(pixels)->unref();
bitmap->lockPixels();