From aebb75ac75e4106e4392adc8798b900560ce8bd5 Mon Sep 17 00:00:00 2001 From: "K. Lange" Date: Mon, 9 Oct 2023 19:56:20 +0900 Subject: [PATCH] hashmap: Apply 'const' to arguments like we did with the kernel version --- base/usr/include/toaru/hashmap.h | 20 ++++++++++---------- lib/hashmap.c | 22 +++++++++++----------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/base/usr/include/toaru/hashmap.h b/base/usr/include/toaru/hashmap.h index 31011d9b..a4783a26 100644 --- a/base/usr/include/toaru/hashmap.h +++ b/base/usr/include/toaru/hashmap.h @@ -14,10 +14,10 @@ _Begin_C_Header -typedef unsigned int (*hashmap_hash_t) (void * key); -typedef int (*hashmap_comp_t) (void * a, void * b); +typedef unsigned int (*hashmap_hash_t) (const void * key); +typedef int (*hashmap_comp_t) (const void * a, const void * b); typedef void (*hashmap_free_t) (void *); -typedef void * (*hashmap_dupe_t) (void *); +typedef void * (*hashmap_dupe_t) (const void *); typedef struct hashmap_entry { char * key; @@ -37,17 +37,17 @@ typedef struct hashmap { extern hashmap_t * hashmap_create(int size); extern hashmap_t * hashmap_create_int(int size); -extern void * hashmap_set(hashmap_t * map, void * key, void * value); -extern void * hashmap_get(hashmap_t * map, void * key); -extern void * hashmap_remove(hashmap_t * map, void * key); -extern int hashmap_has(hashmap_t * map, void * key); +extern void * hashmap_set(hashmap_t * map, const void * key, void * value); +extern void * hashmap_get(hashmap_t * map, const void * key); +extern void * hashmap_remove(hashmap_t * map, const void * key); +extern int hashmap_has(hashmap_t * map, const void * key); extern list_t * hashmap_keys(hashmap_t * map); extern list_t * hashmap_values(hashmap_t * map); extern void hashmap_free(hashmap_t * map); -extern unsigned int hashmap_string_hash(void * key); -extern int hashmap_string_comp(void * a, void * b); -extern void * hashmap_string_dupe(void * key); +extern unsigned int hashmap_string_hash(const void * key); +extern int hashmap_string_comp(const void * a, const void * b); +extern void * hashmap_string_dupe(const void * key); extern int hashmap_is_empty(hashmap_t * map); _End_C_Header diff --git a/lib/hashmap.c b/lib/hashmap.c index 86d36788..fe9d14f3 100644 --- a/lib/hashmap.c +++ b/lib/hashmap.c @@ -9,7 +9,7 @@ #include #include -unsigned int hashmap_string_hash(void * _key) { +unsigned int hashmap_string_hash(const void * _key) { unsigned int hash = 0; char * key = (char *)_key; int c; @@ -21,24 +21,24 @@ unsigned int hashmap_string_hash(void * _key) { return hash; } -int hashmap_string_comp(void * a, void * b) { +int hashmap_string_comp(const void * a, const void * b) { return !strcmp(a,b); } -void * hashmap_string_dupe(void * key) { +void * hashmap_string_dupe(const void * key) { return strdup(key); } -unsigned int hashmap_int_hash(void * key) { +unsigned int hashmap_int_hash(const void * key) { return (uintptr_t)key; } -int hashmap_int_comp(void * a, void * b) { +int hashmap_int_comp(const void * a, const void * b) { return (uintptr_t)a == (uintptr_t)b; } -void * hashmap_int_dupe(void * key) { - return key; +void * hashmap_int_dupe(const void * key) { + return (void*)key; } static void hashmap_int_free(void * ptr) { @@ -79,7 +79,7 @@ hashmap_t * hashmap_create_int(int size) { return map; } -void * hashmap_set(hashmap_t * map, void * key, void * value) { +void * hashmap_set(hashmap_t * map, const void * key, void * value) { unsigned int hash = map->hash_func(key) % map->size; hashmap_entry_t * x = map->entries[hash]; @@ -112,7 +112,7 @@ void * hashmap_set(hashmap_t * map, void * key, void * value) { } } -void * hashmap_get(hashmap_t * map, void * key) { +void * hashmap_get(hashmap_t * map, const void * key) { unsigned int hash = map->hash_func(key) % map->size; hashmap_entry_t * x = map->entries[hash]; @@ -129,7 +129,7 @@ void * hashmap_get(hashmap_t * map, void * key) { } } -void * hashmap_remove(hashmap_t * map, void * key) { +void * hashmap_remove(hashmap_t * map, const void * key) { unsigned int hash = map->hash_func(key) % map->size; hashmap_entry_t * x = map->entries[hash]; @@ -161,7 +161,7 @@ void * hashmap_remove(hashmap_t * map, void * key) { } } -int hashmap_has(hashmap_t * map, void * key) { +int hashmap_has(hashmap_t * map, const void * key) { unsigned int hash = map->hash_func(key) % map->size; hashmap_entry_t * x = map->entries[hash];