Muck with the right cinfo.
In SkImageDecoder_libjpeg, modify cinfo *after* destroying it and creating a new one in its place. Should fix build breakage. Committed: https://skia.googlesource.com/skia/+/3629865bac20ae8092177f519594f79f89d09fb0 Review URL: https://codereview.chromium.org/858333002
This commit is contained in:
parent
8dd688b756
commit
6d7e47a8e0
@ -940,10 +940,9 @@ bool SkJPEGImageDecoder::onDecodeYUV8Planes(SkStream* stream, SkISize componentS
|
||||
bool SkJPEGImageDecoder::onBuildTileIndex(SkStreamRewindable* stream, int *width, int *height) {
|
||||
|
||||
SkAutoTDelete<SkJPEGImageIndex> imageIndex(SkNEW_ARGS(SkJPEGImageIndex, (stream, this)));
|
||||
jpeg_decompress_struct* cinfo = imageIndex->cinfo();
|
||||
|
||||
skjpeg_error_mgr sk_err;
|
||||
set_error_mgr(cinfo, &sk_err);
|
||||
set_error_mgr(imageIndex->cinfo(), &sk_err);
|
||||
|
||||
// All objects need to be instantiated before this setjmp call so that
|
||||
// they will be cleaned up properly if an error occurs.
|
||||
@ -968,6 +967,10 @@ bool SkJPEGImageDecoder::onBuildTileIndex(SkStreamRewindable* stream, int *width
|
||||
return false;
|
||||
}
|
||||
|
||||
jpeg_decompress_struct* cinfo = imageIndex->cinfo();
|
||||
// We have a new cinfo, so set the error mgr again.
|
||||
set_error_mgr(cinfo, &sk_err);
|
||||
|
||||
// FIXME: This sets cinfo->out_color_space, which we may change later
|
||||
// based on the config in onDecodeSubset. This should be fine, since
|
||||
// jpeg_init_read_tile_scanline will check out_color_space again after
|
||||
|
Loading…
Reference in New Issue
Block a user