Mercurial > hg > dmlib
diff tools/lib64gfx.c @ 2329:0085ce04788b
Add return value (error code) to dmGenericRLEAnalyze() and pass it through where used.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 16 Sep 2019 10:24:49 +0300 |
parents | b57517a01960 |
children | 8f4cfe59b2bb |
line wrap: on
line diff
--- a/tools/lib64gfx.c Mon Sep 16 10:14:57 2019 +0300 +++ b/tools/lib64gfx.c Mon Sep 16 10:24:49 2019 +0300 @@ -367,14 +367,14 @@ } -void dmGenericRLEAnalyze(const DMGrowBuf *buf, DMCompParams *cfg) +int dmGenericRLEAnalyze(const DMGrowBuf *buf, DMCompParams *cfg) { #define DM_STAT_MAX 256 - size_t *stats; + Uint8 *stats = NULL; // Allocate statistics counts buffer - if ((stats = dmMalloc0(DM_STAT_MAX * sizeof(size_t))) == NULL) - return; + if ((stats = dmMalloc0(DM_STAT_MAX * sizeof(Uint8))) == NULL) + return DMERR_MALLOC; // Get statistics on the data for (size_t offs = 0; offs < buf->len; offs++) @@ -390,26 +390,24 @@ // Find least used byte value for (size_t n = 0; n < DM_STAT_MAX; n++) + if (stats[n] < smallest) { - if (stats[n] < smallest) + switch (cfg->flags & DM_RLE_RUNS_MASK) { - switch (cfg->flags & DM_RLE_RUNS_MASK) - { - case DM_RLE_BYTE_RUNS | DM_RLE_WORD_RUNS: - cfg->rleMarkerW = selected; - cfg->rleMarkerB = selected = n; - break; + case DM_RLE_BYTE_RUNS | DM_RLE_WORD_RUNS: + cfg->rleMarkerW = selected; + cfg->rleMarkerB = selected = n; + break; - case DM_RLE_BYTE_RUNS: - cfg->rleMarkerB = selected = n; - break; + case DM_RLE_BYTE_RUNS: + cfg->rleMarkerB = selected = n; + break; - case DM_RLE_WORD_RUNS: - cfg->rleMarkerW = selected = n; - break; - } - smallest = stats[n]; + case DM_RLE_WORD_RUNS: + cfg->rleMarkerW = selected = n; + break; } + smallest = stats[n]; } } break; @@ -422,6 +420,7 @@ } dmFree(stats); + return DMERR_OK; }