summaryrefslogtreecommitdiff
path: root/libctf
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2019-06-28 21:58:31 +0100
committerNick Alcock <nick.alcock@oracle.com>2019-07-01 11:05:59 +0100
commit3e10cffc9872fda4519f76ba487fd108551a179f (patch)
treeebf8ae65007b2bedc224e920f6b0af9bc2c13513 /libctf
parentc550e7ba937e6a5e04c17275efc362a74f8fd1b1 (diff)
downloadbinutils-gdb-3e10cffc9872fda4519f76ba487fd108551a179f.tar.gz
libctf: fix hash removal
We must call htab_remove_elt with an element (in this case, a mocked-up one with only the key populated, since no reasonable hash function will need the other fields), not with the key alone. libctf/ * ctf-hash.c (ctf_dynhash_remove): Call with a mocked-up element.
Diffstat (limited to 'libctf')
-rw-r--r--libctf/ChangeLog4
-rw-r--r--libctf/ctf-hash.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index d91abd278ab..dd3113b316c 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,5 +1,9 @@
2019-06-28 Nick Alcock <nick.alcock@oracle.com>
+ * ctf-hash.c (ctf_dynhash_remove): Call with a mocked-up element.
+
+2019-06-28 Nick Alcock <nick.alcock@oracle.com>
+
* ctf-dump.c (ctf_dump_format_type): Prefix hex strings with 0x.
(ctf_dump_funcs): Likewise.
diff --git a/libctf/ctf-hash.c b/libctf/ctf-hash.c
index adfe93e5c09..03a398e06c9 100644
--- a/libctf/ctf-hash.c
+++ b/libctf/ctf-hash.c
@@ -176,7 +176,8 @@ ctf_dynhash_insert (ctf_dynhash_t *hp, void *key, void *value)
void
ctf_dynhash_remove (ctf_dynhash_t *hp, const void *key)
{
- htab_remove_elt (hp->htab, (void *) key);
+ ctf_helem_t hep = { (void *) key, NULL, NULL, NULL };
+ htab_remove_elt (hp->htab, &hep);
}
void *