diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2020-09-06 21:03:06 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2020-09-06 21:03:06 +0000 |
commit | 51b81f893ead8949ebbcbc3e888269071909d7ce (patch) | |
tree | 6f6652aeb259587b53ef057ebf3a899550d122be | |
parent | b1c60418ec3b8cac005cae7378b07c5ff5a448ba (diff) | |
download | netpbm-mirror-51b81f893ead8949ebbcbc3e888269071909d7ce.tar.gz netpbm-mirror-51b81f893ead8949ebbcbc3e888269071909d7ce.tar.xz netpbm-mirror-51b81f893ead8949ebbcbc3e888269071909d7ce.zip |
Fix bug from commit earlier today
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@3948 9d0c8265-081b-0410-96cb-a4ca84ce46f8
-rw-r--r-- | converter/other/jpeg2000/libjasper/jpc/jpc_dec.c | 67 |
1 files changed, 30 insertions, 37 deletions
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); } } |