From 334778981dc01b5f8f4e137eb3f78745e214cf4d Mon Sep 17 00:00:00 2001 From: "lina.x.pi" Date: Mon, 27 Jan 2014 10:31:44 +0800 Subject: [PATCH] Release locked buffer when it fails to acquire graphics buffer The JNI buffer in ImageReader_imageSetup is not released when it fails to acquire graphics buffer. After all JNI buffers are exhausted, ACQUIRE_MAX_IMAGES will be returned and leads to error. The JNI buffer should be released when it fails to acquire graphics buffer. Change-Id: I3319a58ac44e36c8593b404672a685c4b589a735 --- media/jni/android_media_ImageReader.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp index 0030dbdafee2c..d475eeef06b82 100644 --- a/media/jni/android_media_ImageReader.cpp +++ b/media/jni/android_media_ImageReader.cpp @@ -707,6 +707,7 @@ static jint ImageReader_imageSetup(JNIEnv* env, jobject thiz, } status_t res = consumer->lockNextBuffer(buffer); if (res != NO_ERROR) { + ctx->returnLockedBuffer(buffer); if (res != BAD_VALUE /*no buffers*/) { if (res == NOT_ENOUGH_DATA) { return ACQUIRE_MAX_IMAGES;