libctf: add new dynhash functions
authorNick Alcock <nick.alcock@oracle.com>
Tue, 2 Jun 2020 20:31:45 +0000 (21:31 +0100)
committerNick Alcock <nick.alcock@oracle.com>
Wed, 22 Jul 2020 16:57:41 +0000 (17:57 +0100)
commit809f6eb3321edb91fcc96b1f8353dbfe2f762fa7
tree0dfd5c1aac3b5580c483d03984ce49bbb01282f2
parent469e75b621f6ee0b235d5dbe7566483d356d178d
libctf: add new dynhash functions

Future commits will use these.

ctf_dynhash_elements: count elements in a dynhash
ctf_dynhash_lookup_kv: look up and return pointers to the original key
                       and value in a dynhash (the only way of getting
                       a reference to the original key)
ctf_dynhash_iter_find: iterate until an item is found, then return its
                       key
ctf_dynhash_cinsert: insert a const key / value into a dynhash (a thim
                     wrapper in a new header dedicated to inline
                     functions).

As with the rest of ctf_dynhash, this is not public API.  No impact
on existing callers is expected.

libctf/
* ctf-inlines.h: New file.
* ctf-impl.h: Include it.
(ctf_hash_iter_find_f): New typedef.
(ctf_dynhash_elements): New.
(ctf_dynhash_lookup_kv): New.
(ctf_dynhash_iter_find): New.
* ctf-hash.c (ctf_dynhash_lookup_kv): New.
(ctf_traverse_find_cb_arg_t): New.
(ctf_hashtab_traverse_find): New.
(ctf_dynhash_iter_find): New.
(ctf_dynhash_elements): New.
libctf/ChangeLog
libctf/ctf-hash.c
libctf/ctf-impl.h
libctf/ctf-inlines.h [new file with mode: 0644]