From fb09bcf9699025384155924a68dc1e5a92f141b6 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Thu, 26 Jan 2017 11:52:35 -0800 Subject: [PATCH] Correct screenshot JNI code. Missed change to frameworks/base when changing type to signed int. Previous code was relying on implicit cast of -1 to unsigned being INT_MAX. Test: Rotate screen make sure no flash. Change-Id: I779d851bdc211f24aed0095a4b6df38fd53153b4 Fixes: 34735633 --- core/jni/android_view_SurfaceControl.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp index a3fef27a9c3af..43f02c121f451 100644 --- a/core/jni/android_view_SurfaceControl.cpp +++ b/core/jni/android_view_SurfaceControl.cpp @@ -147,8 +147,8 @@ static jobject nativeScreenshotToBuffer(JNIEnv* env, jclass clazz, } Rect sourceCrop = rectFromObj(env, sourceCropObj); if (allLayers) { - minLayer = 0; - maxLayer = -1; + minLayer = INT32_MIN; + maxLayer = INT32_MAX; } sp buffer; status_t res = ScreenshotClient::captureToBuffer(displayToken, @@ -181,8 +181,8 @@ static jobject nativeScreenshotBitmap(JNIEnv* env, jclass clazz, std::unique_ptr screenshot(new ScreenshotClient()); status_t res; if (allLayers) { - minLayer = 0; - maxLayer = -1; + minLayer = INT32_MIN; + maxLayer = INT32_MAX; } res = screenshot->update(displayToken, sourceCrop, width, height, @@ -254,8 +254,8 @@ static void nativeScreenshot(JNIEnv* env, jclass clazz, jobject displayTokenObj, Rect sourceCrop(left, top, right, bottom); if (allLayers) { - minLayer = 0; - maxLayer = -1; + minLayer = INT32_MIN; + maxLayer = INT32_MAX; } ScreenshotClient::capture(displayToken, consumer->getIGraphicBufferProducer(), sourceCrop,