diff options
author | 2017-12-04 11:37:30 -0500 | |
---|---|---|
committer | 2017-12-04 11:37:30 -0500 | |
commit | 471ef097cc85de24bea28dc5fbec5aec18532317 (patch) | |
tree | 1cf2fb39a8bd312969dca0007f6007dcfa52874e | |
parent | c51777b9b87d6b9f12f80cc998c30f6dea8de7d0 (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.cpp | 9 |
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); |