From c84d825241447a466cc3df24a04d85b83148834d Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 29 Sep 2024 10:58:54 -0700 Subject: [PATCH] Added SDL_HashPointer() and SDL_KeyMatchPointer() --- src/SDL_hashtable.c | 15 +++++++++++---- src/SDL_hashtable.h | 3 +++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/SDL_hashtable.c b/src/SDL_hashtable.c index 6e852bf217..63f738a9f8 100644 --- a/src/SDL_hashtable.c +++ b/src/SDL_hashtable.c @@ -493,6 +493,16 @@ static SDL_INLINE Uint32 hash_string_djbxor(const char *str, size_t len) return hash; } +Uint32 SDL_HashPointer(const void *key, void *unused) +{ + return SDL_murmur3_32(&key, sizeof(key), 0); +} + +bool SDL_KeyMatchPointer(const void *a, const void *b, void *unused) +{ + return (a == b); +} + Uint32 SDL_HashString(const void *key, void *data) { const char *str = (const char *)key; @@ -524,10 +534,7 @@ Uint32 SDL_HashID(const void *key, void *unused) bool SDL_KeyMatchID(const void *a, const void *b, void *unused) { - if (a == b) { - return true; - } - return false; + return (a == b); } void SDL_NukeFreeKey(const void *key, const void *value, void *unused) diff --git a/src/SDL_hashtable.h b/src/SDL_hashtable.h index 55b6d53e86..76f40929d7 100644 --- a/src/SDL_hashtable.h +++ b/src/SDL_hashtable.h @@ -49,6 +49,9 @@ extern bool SDL_IterateHashTableKey(const SDL_HashTable *table, const void *key, // iterate all key/value pairs in a hash (stackable hashes can have duplicate keys with multiple values). extern bool SDL_IterateHashTable(const SDL_HashTable *table, const void **_key, const void **_value, void **iter); +extern Uint32 SDL_HashPointer(const void *key, void *unused); +extern bool SDL_KeyMatchPointer(const void *a, const void *b, void *unused); + extern Uint32 SDL_HashString(const void *key, void *unused); extern bool SDL_KeyMatchString(const void *a, const void *b, void *unused);