summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Leon Scroggins III <scroggo@google.com> 2017-12-04 11:37:30 -0500
committer Leon Scroggins III <scroggo@google.com> 2017-12-04 11:37:30 -0500
commit471ef097cc85de24bea28dc5fbec5aec18532317 (patch)
tree1cf2fb39a8bd312969dca0007f6007dcfa52874e
parentc51777b9b87d6b9f12f80cc998c30f6dea8de7d0 (diff)
Stop using skjpeg_error_mgr in YuvToJpegEncoder
Bug: None Test: compile skjpeg_error_mgr is only different from the standard one in that it includes a jmp_buf. A recent change to skjpeg_error_mgr stores a stack of jmp_bufs (see https://skia-review.googlesource.com/c/skia/+/79241). This complexity is unnecessary for YuvToJpegEncoder, which only contains a single method with libjpeg calls (which might call longjmp). Simplify this code by placing the jmp_buf on the stack. This fixes the Skia to Android roll, which includes the above Skia change. Change-Id: If9a33ed10ea60131906a632a7030e0b69a21f4ea
-rw-r--r--core/jni/android/graphics/YuvToJpegEncoder.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/core/jni/android/graphics/YuvToJpegEncoder.cpp b/core/jni/android/graphics/YuvToJpegEncoder.cpp
index 31567f727a99..5eecd9cf76ef 100644
--- a/core/jni/android/graphics/YuvToJpegEncoder.cpp
+++ b/core/jni/android/graphics/YuvToJpegEncoder.cpp
@@ -26,12 +26,13 @@ YuvToJpegEncoder::YuvToJpegEncoder(int* strides) : fStrides(strides) {
bool YuvToJpegEncoder::encode(SkWStream* stream, void* inYuv, int width,
int height, int* offsets, int jpegQuality) {
jpeg_compress_struct cinfo;
- skjpeg_error_mgr sk_err;
+ jpeg_error_mgr err;
skjpeg_destination_mgr sk_wstream(stream);
- cinfo.err = jpeg_std_error(&sk_err);
- sk_err.error_exit = skjpeg_error_exit;
- if (setjmp(sk_err.fJmpBuf)) {
+ cinfo.err = jpeg_std_error(&err);
+ err.error_exit = skjpeg_error_exit;
+ jmp_buf jmp;
+ if (setjmp(jmp)) {
return false;
}
jpeg_create_compress(&cinfo);