Mercurial > hg > dmlib
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];