changeset 2604:1c80099fe47e

Cleanup CDHP decoder slightly.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 25 Nov 2023 06:04:23 +0200
parents 8386c5e55a31
children f5f03c5d9fd5
files tools/lib64fmts.c
diffstat 1 files changed, 7 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/tools/lib64fmts.c	Sun Nov 19 19:39:52 2023 +0200
+++ b/tools/lib64fmts.c	Sat Nov 25 06:04:23 2023 +0200
@@ -1556,12 +1556,12 @@
 
 static int fmtDecodeCosmosDesignsHiresManagerPacked(DMC64Image *img, const DMGrowBuf *psrc, const DMC64ImageFormat *fmt)
 {
-    int res;
-    DMGrowBuf tmp;
-    Uint8 data, *dstBuf;
     const size_t baseAddr = 0x4000;
     const size_t dstSize = 0x8000 - baseAddr;
-    size_t dstOffs, srcOffs, ncount;
+    DMGrowBuf tmp;
+    Uint8 *dstBuf;
+    size_t dstOffs, srcOffs;
+    int res;
 
     // Allocate output buffer
     if ((dstBuf = dmMalloc0(dstSize)) == NULL)
@@ -1577,7 +1577,8 @@
     while (dstOffs > 0 && srcOffs > 0)
     {
         // Get one byte of data
-        data = psrc->data[srcOffs];
+        Uint8 data = psrc->data[srcOffs];
+        size_t ncount;
 
         // Current data byte tells us the mode
         if (data == 0)
@@ -1594,7 +1595,7 @@
             data = psrc->data[--srcOffs];
 
             if (dstOffs < ncount)
-                goto finish;
+                break;;
 
             dstOffs -= ncount;
 
@@ -1621,8 +1622,6 @@
         }
     }
 
-finish:
-
     // Fixups that the original decoder does, not necessary really
     dstBuf[0x7ff0 - baseAddr] = 0x03;
     dstBuf[0x7ffe - baseAddr] = dstBuf[4];