8011760: assert(delta != 0) failed: dup pointer in MemBaseline::malloc_sort_by_addr

Some of qsort implementation on Linux x86 compares element to itself, which is  mistakenly treated as duplicate pointer

Reviewed-by: dcubed, acorn
This commit is contained in:
Zhengyu Gu 2013-07-09 13:18:16 -04:00
parent 7f314c6d87
commit 4382d40555

View file

@ -486,7 +486,7 @@ int MemBaseline::malloc_sort_by_addr(const void* p1, const void* p2) {
const MemPointerRecord* mp1 = (const MemPointerRecord*)p1; const MemPointerRecord* mp1 = (const MemPointerRecord*)p1;
const MemPointerRecord* mp2 = (const MemPointerRecord*)p2; const MemPointerRecord* mp2 = (const MemPointerRecord*)p2;
int delta = UNSIGNED_COMPARE(mp1->addr(), mp2->addr()); int delta = UNSIGNED_COMPARE(mp1->addr(), mp2->addr());
assert(delta != 0, "dup pointer"); assert(p1 == p2 || delta != 0, "dup pointer");
return delta; return delta;
} }