poppler/DCTStream.cc | 57 ++++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 27 deletions(-)
New commits: commit 70e6af4739d2eea58e6f3200a8c9467597a12ae5 Author: Rodrigo Rivas Costa <[email protected]> Date: Thu Apr 4 23:10:09 2013 +0200 Be pedantic about setjmp use Bug #63067 diff --git a/poppler/DCTStream.cc b/poppler/DCTStream.cc index decfd0f..d2dbba1 100644 --- a/poppler/DCTStream.cc +++ b/poppler/DCTStream.cc @@ -159,40 +159,43 @@ void DCTStream::reset() { } } - if (!setjmp(err.setjmp_buffer) && jpeg_read_header(&cinfo, TRUE) != JPEG_SUSPENDED) + if (!setjmp(err.setjmp_buffer)) { - // figure out color transform - if (colorXform == -1 && !cinfo.saw_Adobe_marker) { - if (cinfo.num_components == 3) { - if (cinfo.saw_JFIF_marker) { - colorXform = 1; - } else if (cinfo.cur_comp_info[0]->component_id == 82 && - cinfo.cur_comp_info[1]->component_id == 71 && - cinfo.cur_comp_info[2]->component_id == 66) { // ASCII "RGB" - colorXform = 0; + if (jpeg_read_header(&cinfo, TRUE) != JPEG_SUSPENDED) + { + // figure out color transform + if (colorXform == -1 && !cinfo.saw_Adobe_marker) { + if (cinfo.num_components == 3) { + if (cinfo.saw_JFIF_marker) { + colorXform = 1; + } else if (cinfo.cur_comp_info[0]->component_id == 82 && + cinfo.cur_comp_info[1]->component_id == 71 && + cinfo.cur_comp_info[2]->component_id == 66) { // ASCII "RGB" + colorXform = 0; + } else { + colorXform = 1; + } } else { - colorXform = 1; + colorXform = 0; } - } else { - colorXform = 0; + } else if (cinfo.saw_Adobe_marker) { + colorXform = cinfo.Adobe_transform; } - } else if (cinfo.saw_Adobe_marker) { - colorXform = cinfo.Adobe_transform; - } - switch (cinfo.num_components) { - case 3: - cinfo.jpeg_color_space = colorXform ? JCS_YCbCr : JCS_RGB; - break; - case 4: - cinfo.jpeg_color_space = colorXform ? JCS_YCCK : JCS_CMYK; - break; - } + switch (cinfo.num_components) { + case 3: + cinfo.jpeg_color_space = colorXform ? JCS_YCbCr : JCS_RGB; + break; + case 4: + cinfo.jpeg_color_space = colorXform ? JCS_YCCK : JCS_CMYK; + break; + } - jpeg_start_decompress(&cinfo); + jpeg_start_decompress(&cinfo); - row_stride = cinfo.output_width * cinfo.output_components; - row_buffer = cinfo.mem->alloc_sarray((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1); + row_stride = cinfo.output_width * cinfo.output_components; + row_buffer = cinfo.mem->alloc_sarray((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1); + } } } _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
