From 51b81f893ead8949ebbcbc3e888269071909d7ce Mon Sep 17 00:00:00 2001 From: giraffedata Date: Sun, 6 Sep 2020 21:03:06 +0000 Subject: Fix bug from commit earlier today git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@3948 9d0c8265-081b-0410-96cb-a4ca84ce46f8 --- converter/other/jpeg2000/libjasper/jpc/jpc_dec.c | 67 +++++++++++------------- 1 file changed, 30 insertions(+), 37 deletions(-) (limited to 'converter/other/jpeg2000') diff --git a/converter/other/jpeg2000/libjasper/jpc/jpc_dec.c b/converter/other/jpeg2000/libjasper/jpc/jpc_dec.c index bc4dc167..140169ec 100644 --- a/converter/other/jpeg2000/libjasper/jpc/jpc_dec.c +++ b/converter/other/jpeg2000/libjasper/jpc/jpc_dec.c @@ -2479,55 +2479,48 @@ jpc_decode(jas_stream_t * const in, jas_image_t *image; const char * error; - dec = 0; - if (jpc_dec_parseopts(optstr, &opts)) { pm_asprintf(errorP, "jpc_dec_parseopts failed"); - goto errorRet; + return; } jpc_initluts(); - if (!(dec = jpc_dec_create(&opts, in))) { - pm_asprintf(errorP, "jpc_dec_create failed"); - goto errorRet; - } + dec = jpc_dec_create(&opts, in); - /* Do most of the work. */ - jpc_dec_decode(dec, &error); - if (error) { - pm_asprintf(errorP, "jpc_dec_decode failed. %s", error); - pm_strfree(error); - goto errorRet; - } - - if (jas_image_numcmpts(dec->image) >= 3) { - jas_image_setcolorspace(dec->image, JAS_IMAGE_CS_RGB); - jas_image_setcmpttype(dec->image, 0, - JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_RGB_R)); - jas_image_setcmpttype(dec->image, 1, - JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_RGB_G)); - jas_image_setcmpttype(dec->image, 2, - JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_RGB_B)); + if (!dec) { + pm_asprintf(errorP, "jpc_dec_create failed"); } else { - jas_image_setcolorspace(dec->image, JAS_IMAGE_CS_GRAY); - jas_image_setcmpttype(dec->image, 0, - JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_GRAY_Y)); - } - - /* Save the return value. */ - image = dec->image; + /* Do most of the work. */ + jpc_dec_decode(dec, &error); + if (error) { + pm_asprintf(errorP, "jpc_dec_decode failed. %s", error); + pm_strfree(error); + } else { + if (jas_image_numcmpts(dec->image) >= 3) { + jas_image_setcolorspace(dec->image, JAS_IMAGE_CS_RGB); + jas_image_setcmpttype(dec->image, 0, + JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_RGB_R)); + jas_image_setcmpttype(dec->image, 1, + JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_RGB_G)); + jas_image_setcmpttype(dec->image, 2, + JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_RGB_B)); + } else { + jas_image_setcolorspace(dec->image, JAS_IMAGE_CS_GRAY); + jas_image_setcmpttype(dec->image, 0, + JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_GRAY_Y)); + } - /* Stop the image from being discarded. */ - dec->image = 0; + /* Save the return value. */ + image = dec->image; - /* Destroy decoder. */ - jpc_dec_destroy(dec); + /* Stop the image from being discarded. */ + dec->image = 0; - *imagePP = image; + *imagePP = image; -errorRet: - if (dec) { + *errorP = NULL; + } jpc_dec_destroy(dec); } } -- cgit 1.4.1