remove cases of equal comparison for qsort()

Returning 0 (equal) can lead to undefined behaviour.
And, in our cases we'll never have equal keys (added asserts for that)

Change-Id: Ifaf202df321d3f877ad2a03de42e0d6cdd1b2388
This commit is contained in:
skal 2012-09-25 19:03:41 +02:00
parent 2afee60a7c
commit 8f216f7e60
2 changed files with 4 additions and 8 deletions

View File

@ -37,7 +37,8 @@ extern "C" {
static int CompareColors(const void* p1, const void* p2) { static int CompareColors(const void* p1, const void* p2) {
const uint32_t a = *(const uint32_t*)p1; const uint32_t a = *(const uint32_t*)p1;
const uint32_t b = *(const uint32_t*)p2; const uint32_t b = *(const uint32_t*)p2;
return (a < b) ? -1 : (a > b) ? 1 : 0; assert(a != b);
return (a < b) ? -1 : 1;
} }
// If number of colors in the image is less than or equal to MAX_PALETTE_SIZE, // If number of colors in the image is less than or equal to MAX_PALETTE_SIZE,

View File

@ -138,13 +138,8 @@ static int CompareHuffmanTrees(const void* ptr1, const void* ptr2) {
} else if (t1->total_count_ < t2->total_count_) { } else if (t1->total_count_ < t2->total_count_) {
return 1; return 1;
} else { } else {
if (t1->value_ < t2->value_) { assert(t1->value_ != t2->value_);
return -1; return (t1->value_ < t2->value_) ? -1 : 1;
}
if (t1->value_ > t2->value_) {
return 1;
}
return 0;
} }
} }