From b299d7cfc27a3a3365e8a01098ff830c696dc385 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 1 May 2022 22:33:49 +1000 Subject: [PATCH 1/2] Simplified code by using unsigned int instead of union --- src/libImaging/Quant.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libImaging/Quant.c b/src/libImaging/Quant.c index 1c6b9d6a2d7..69cbcd08674 100644 --- a/src/libImaging/Quant.c +++ b/src/libImaging/Quant.c @@ -1519,7 +1519,7 @@ quantize( typedef struct { Pixel new; - Pixel furthest; + uint32_t furthestV; uint32_t furthestDistance; int secondPixel; } DistanceData; @@ -1536,7 +1536,7 @@ compute_distances(const HashTable *h, const Pixel pixel, uint32_t *dist, void *u } if (oldDist > data->furthestDistance) { data->furthestDistance = oldDist; - data->furthest.v = pixel.v; + data->furthestV = pixel.v; } } @@ -1579,8 +1579,8 @@ quantize2( data.furthestDistance = 0; data.secondPixel = (i == 1) ? 1 : 0; hashtable_foreach_update(h, compute_distances, &data); - p[i].v = data.furthest.v; - data.new.v = data.furthest.v; + p[i].v = data.furthestV; + data.new.v = data.furthestV; } hashtable_free(h); From 44494a11710e4df780ae0147f7a9ef2c0a806ade Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 1 May 2022 23:26:54 +1000 Subject: [PATCH 2/2] Set furthestV to first v in case compute_distances does not assign it --- src/libImaging/Quant.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libImaging/Quant.c b/src/libImaging/Quant.c index 69cbcd08674..dfa6d842d3f 100644 --- a/src/libImaging/Quant.c +++ b/src/libImaging/Quant.c @@ -1577,6 +1577,7 @@ quantize2( data.new.c.b = (int)(.5 + (double)mean[2] / (double)nPixels); for (i = 0; i < nQuantPixels; i++) { data.furthestDistance = 0; + data.furthestV = pixelData[0].v; data.secondPixel = (i == 1) ? 1 : 0; hashtable_foreach_update(h, compute_distances, &data); p[i].v = data.furthestV;