From: Nick Alcock Date: Thu, 24 Apr 2025 13:06:38 +0000 (+0100) Subject: libctf: dynhash/dynset: a bit of const-correctness X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1d70873382b3f917fc643f63646b3c2b8d0941d0;p=thirdparty%2Fbinutils-gdb.git libctf: dynhash/dynset: a bit of const-correctness A pile of dynhash and dynset functions were requiring non-const hashes/sets unnecessarily. Fix them. --- diff --git a/libctf/ctf-hash.c b/libctf/ctf-hash.c index a170b6c8ef8..89f2c1472ee 100644 --- a/libctf/ctf-hash.c +++ b/libctf/ctf-hash.c @@ -396,7 +396,7 @@ ctf_dynhash_empty (ctf_dynhash_t *hp) } size_t -ctf_dynhash_elements (ctf_dynhash_t *hp) +ctf_dynhash_elements (const ctf_dynhash_t *hp) { return htab_elements (hp->htab); } @@ -523,7 +523,7 @@ ctf_dynhash_iter_remove (ctf_dynhash_t *hp, ctf_hash_iter_remove_f fun, of this into some sort of errno or ctf_errno, which is invariably positive. So doing this simplifies essentially all callers. */ int -ctf_dynhash_next (ctf_dynhash_t *h, ctf_next_t **it, void **key, void **value) +ctf_dynhash_next (const ctf_dynhash_t *h, ctf_next_t **it, void **key, void **value) { ctf_next_t *i = *it; ctf_helem_t *slot; @@ -602,7 +602,7 @@ ctf_dynhash_sort_by_name (const ctf_next_hkv_t *one, const ctf_next_hkv_t *two, If SORT_FUN is null, thunks to ctf_dynhash_next. */ int -ctf_dynhash_next_sorted (ctf_dynhash_t *h, ctf_next_t **it, void **key, +ctf_dynhash_next_sorted (const ctf_dynhash_t *h, ctf_next_t **it, void **key, void **value, ctf_hash_sort_f sort_fun, void *sort_arg) { ctf_next_t *i = *it; @@ -767,7 +767,7 @@ ctf_dynset_remove (ctf_dynset_t *hp, const void *key) } size_t -ctf_dynset_elements (ctf_dynset_t *hp) +ctf_dynset_elements (const ctf_dynset_t *hp) { return htab_elements ((struct htab *) hp); } @@ -824,7 +824,7 @@ ctf_dynset_lookup_any (ctf_dynset_t *hp) Otherwise, just like ctf_dynhash_next. */ int -ctf_dynset_next (ctf_dynset_t *hp, ctf_next_t **it, void **key) +ctf_dynset_next (const ctf_dynset_t *hp, ctf_next_t **it, void **key) { struct htab *htab = (struct htab *) hp; ctf_next_t *i = *it; diff --git a/libctf/ctf-impl.h b/libctf/ctf-impl.h index 9be35637743..db2ad1d8e53 100644 --- a/libctf/ctf-impl.h +++ b/libctf/ctf-impl.h @@ -676,7 +676,7 @@ extern ctf_dynhash_t *ctf_dynhash_create_sized (unsigned long, ctf_hash_fun, extern int ctf_dynhash_insert (ctf_dynhash_t *, void *, void *); extern void ctf_dynhash_remove (ctf_dynhash_t *, const void *); -extern size_t ctf_dynhash_elements (ctf_dynhash_t *); +extern size_t ctf_dynhash_elements (const ctf_dynhash_t *); extern void ctf_dynhash_empty (ctf_dynhash_t *); extern int ctf_dynhash_insert_type (ctf_dict_t *, ctf_dynhash_t *, uint32_t, uint32_t); extern ctf_id_t ctf_dynhash_lookup_type (ctf_dynhash_t *, const char *); @@ -692,21 +692,21 @@ extern void *ctf_dynhash_iter_find (ctf_dynhash_t *, ctf_hash_iter_find_f, extern int ctf_dynhash_sort_by_name (const ctf_next_hkv_t *, const ctf_next_hkv_t *, void * _libctf_unused_); -extern int ctf_dynhash_next (ctf_dynhash_t *, ctf_next_t **, +extern int ctf_dynhash_next (const ctf_dynhash_t *, ctf_next_t **, void **key, void **value); -extern int ctf_dynhash_next_sorted (ctf_dynhash_t *, ctf_next_t **, +extern int ctf_dynhash_next_sorted (const ctf_dynhash_t *, ctf_next_t **, void **key, void **value, ctf_hash_sort_f, void *); extern ctf_dynset_t *ctf_dynset_create (htab_hash, htab_eq, ctf_hash_free_fun); extern int ctf_dynset_insert (ctf_dynset_t *, void *); extern void ctf_dynset_remove (ctf_dynset_t *, const void *); -extern size_t ctf_dynset_elements (ctf_dynset_t *); +extern size_t ctf_dynset_elements (const ctf_dynset_t *); extern void ctf_dynset_destroy (ctf_dynset_t *); extern void *ctf_dynset_lookup (ctf_dynset_t *, const void *); extern int ctf_dynset_exists (ctf_dynset_t *, const void *key, const void **orig_key); -extern int ctf_dynset_next (ctf_dynset_t *, ctf_next_t **, void **key); +extern int ctf_dynset_next (const ctf_dynset_t *, ctf_next_t **, void **key); extern void *ctf_dynset_lookup_any (ctf_dynset_t *); extern void ctf_sha1_init (ctf_sha1_t *); diff --git a/libctf/ctf-inlines.h b/libctf/ctf-inlines.h index d1f0691bdae..bf4b61e5cea 100644 --- a/libctf/ctf-inlines.h +++ b/libctf/ctf-inlines.h @@ -47,7 +47,7 @@ ctf_forwardable_kind (int kind) } static inline int -ctf_dynhash_cnext_sorted (ctf_dynhash_t *h, ctf_next_t **i, const void **key, +ctf_dynhash_cnext_sorted (const ctf_dynhash_t *h, ctf_next_t **i, const void **key, const void **value, ctf_hash_sort_f sort_fun, void *sort_arg) { @@ -56,7 +56,7 @@ ctf_dynhash_cnext_sorted (ctf_dynhash_t *h, ctf_next_t **i, const void **key, } static inline int -ctf_dynhash_cnext (ctf_dynhash_t *h, ctf_next_t **it, +ctf_dynhash_cnext (const ctf_dynhash_t *h, ctf_next_t **it, const void **key, const void **value) { return ctf_dynhash_next (h, it, (void **) key, (void **) value); @@ -69,7 +69,7 @@ ctf_dynhash_cinsert (ctf_dynhash_t *h, const void *k, const void *v) } static inline int -ctf_dynset_cnext (ctf_dynset_t *h, ctf_next_t **it, const void **key) +ctf_dynset_cnext (const ctf_dynset_t *h, ctf_next_t **it, const void **key) { return ctf_dynset_next (h, it, (void **) key); }