mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-21 02:32:06 +00:00
Fix hashmap collisions sometimes hanging deletion
This commit is contained in:
@@ -78,6 +78,7 @@ bool hash_RemoveElement(HashMap map, char const *key)
|
|||||||
*ptr = next;
|
*ptr = next;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
ptr = &(*ptr)->next;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
34
test/asm/sym-collision.asm
Normal file
34
test/asm/sym-collision.asm
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
; Hashmap collisions are pretty poorly-tested code path...
|
||||||
|
; At some point, `PURGE` would malfunction with them
|
||||||
|
|
||||||
|
SECTION "Collision course", OAM[$FE00]
|
||||||
|
|
||||||
|
; All the following symbols collide!
|
||||||
|
aqfj: ds 1 ; Give them different addresses
|
||||||
|
cxje: ds 1
|
||||||
|
dgsd: ds 1
|
||||||
|
dork: ds 1
|
||||||
|
lxok: ds 1
|
||||||
|
psgp: ds 1
|
||||||
|
sfly: ds 1
|
||||||
|
syyq: ds 1
|
||||||
|
ussg: ds 1
|
||||||
|
xlmm: ds 1
|
||||||
|
xtzp: ds 1
|
||||||
|
zxfr: ds 1
|
||||||
|
|
||||||
|
; Completely by accident, but cool
|
||||||
|
PURGE dork
|
||||||
|
|
||||||
|
PRINTT "aqfj: {aqfj}\n"
|
||||||
|
PRINTT "cxje: {cxje}\n"
|
||||||
|
PRINTT "dgsd: {dgsd}\n"
|
||||||
|
PRINTT "dork: {dork}\n"
|
||||||
|
PRINTT "lxok: {lxok}\n"
|
||||||
|
PRINTT "psgp: {psgp}\n"
|
||||||
|
PRINTT "sfly: {sfly}\n"
|
||||||
|
PRINTT "syyq: {syyq}\n"
|
||||||
|
PRINTT "ussg: {ussg}\n"
|
||||||
|
PRINTT "xlmm: {xlmm}\n"
|
||||||
|
PRINTT "xtzp: {xtzp}\n"
|
||||||
|
PRINTT "zxfr: {zxfr}\n"
|
||||||
3
test/asm/sym-collision.err
Normal file
3
test/asm/sym-collision.err
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
ERROR: sym-collision.asm(26):
|
||||||
|
'dork' not defined
|
||||||
|
error: Assembly aborted (1 errors)!
|
||||||
12
test/asm/sym-collision.out
Normal file
12
test/asm/sym-collision.out
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
aqfj: $FE00
|
||||||
|
cxje: $FE01
|
||||||
|
dgsd: $FE02
|
||||||
|
dork: $0
|
||||||
|
lxok: $FE04
|
||||||
|
psgp: $FE05
|
||||||
|
sfly: $FE06
|
||||||
|
syyq: $FE07
|
||||||
|
ussg: $FE08
|
||||||
|
xlmm: $FE09
|
||||||
|
xtzp: $FE0A
|
||||||
|
zxfr: $FE0B
|
||||||
Reference in New Issue
Block a user