mirror of
https://github.com/corda/corda.git
synced 2025-03-12 15:34:58 +00:00
add assertions to hashMapResize and hashMapRemove to help debug rare infinite loop
This commit is contained in:
parent
b1f24079ec
commit
fa3ceb0a75
@ -321,6 +321,7 @@ hashMapResize(Thread* t, object map, uint32_t (*hash)(Thread*, object),
|
||||
|
||||
unsigned index = hash(t, k) & (newLength - 1);
|
||||
|
||||
expect(t, p != arrayBody(t, newArray, index));
|
||||
set(t, p, TripleThird, arrayBody(t, newArray, index));
|
||||
set(t, newArray, ArrayBody + (index * BytesPerWord), p);
|
||||
}
|
||||
@ -333,7 +334,7 @@ hashMapResize(Thread* t, object map, uint32_t (*hash)(Thread*, object),
|
||||
|
||||
void
|
||||
hashMapInsert(Thread* t, object map, object key, object value,
|
||||
uint32_t (*hash)(Thread*, object))
|
||||
uint32_t (*hash)(Thread*, object))
|
||||
{
|
||||
// note that we reinitialize the array and index variables whenever
|
||||
// an allocation (and thus possibly a collection) occurs, in case
|
||||
@ -387,6 +388,7 @@ object
|
||||
hashMapRemoveNode(Thread* t, object map, unsigned index, object p, object n)
|
||||
{
|
||||
if (p) {
|
||||
expect(t, p != tripleThird(t, n));
|
||||
set(t, p, TripleThird, tripleThird(t, n));
|
||||
} else {
|
||||
set(t, hashMapArray(t, map), ArrayBody + (index * BytesPerWord),
|
||||
|
Loading…
x
Reference in New Issue
Block a user