summaryrefslogtreecommitdiff
path: root/core/jni/android/graphics/YuvToJpegEncoder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/jni/android/graphics/YuvToJpegEncoder.cpp')
-rw-r--r--core/jni/android/graphics/YuvToJpegEncoder.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/core/jni/android/graphics/YuvToJpegEncoder.cpp b/core/jni/android/graphics/YuvToJpegEncoder.cpp
index 799782d53ce2..6591d60b1eec 100644
--- a/core/jni/android/graphics/YuvToJpegEncoder.cpp
+++ b/core/jni/android/graphics/YuvToJpegEncoder.cpp
@@ -226,16 +226,17 @@ static jboolean YuvImage_compressToJpeg(JNIEnv* env, jobject, jbyteArray inYuv,
jint* imgOffsets = env->GetIntArrayElements(offsets, NULL);
jint* imgStrides = env->GetIntArrayElements(strides, NULL);
YuvToJpegEncoder* encoder = YuvToJpegEncoder::create(format, imgStrides);
- if (encoder == NULL) {
- return JNI_FALSE;
+ jboolean result = JNI_FALSE;
+ if (encoder != NULL) {
+ encoder->encode(strm, yuv, width, height, imgOffsets, jpegQuality);
+ delete encoder;
+ result = JNI_TRUE;
}
- encoder->encode(strm, yuv, width, height, imgOffsets, jpegQuality);
- delete encoder;
env->ReleaseByteArrayElements(inYuv, yuv, 0);
env->ReleaseIntArrayElements(offsets, imgOffsets, 0);
env->ReleaseIntArrayElements(strides, imgStrides, 0);
- return JNI_TRUE;
+ return result;
}
///////////////////////////////////////////////////////////////////////////////