about summary refs log tree commit diff
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2020-09-06 21:03:06 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2020-09-06 21:03:06 +0000
commit51b81f893ead8949ebbcbc3e888269071909d7ce (patch)
tree6f6652aeb259587b53ef057ebf3a899550d122be
parentb1c60418ec3b8cac005cae7378b07c5ff5a448ba (diff)
downloadnetpbm-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.c67
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);
     }
 }