]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
libctf: fix dynset insertion
authorNick Alcock <nick.alcock@oracle.com>
Mon, 15 Jul 2024 19:50:25 +0000 (20:50 +0100)
committerNick Alcock <nick.alcock@oracle.com>
Wed, 31 Jul 2024 20:02:05 +0000 (21:02 +0100)
commit67588c4dd687fee5164592ee2054638e53bee62f
tree3375c9bffacdb809cd833b52cc4e5284f20dd8cc
parent6b783c334290a56317325d3b8eeb7f76667916c6
libctf: fix dynset insertion

libctf's dynsets are a straight wrapper around libiberty hashtab, storing
the key directly in the hashtab slot.  However, we'd often like to be able
to store 0 and 1 (HTAB_EMPTY_ENTRY and HTAB_DELETED_ENTRY) in there, so we
move them out of the way and replace them with huge unlikely values
instead.  Unfortunately we failed to do this replacement in one place, so
insertion of 0 or 1 ended up misinforming the hashtab machinery that an
entry was empty or deleted when it wasn't.

libctf/
* ctf-hash.c (ctf_dynset_insert): Call key_to_internal properly.
libctf/ctf-hash.c