From 69e00ce68d7e6acf3325adcee8b4a8828fb421d5 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Wed, 21 Feb 2024 20:19:49 +0100 Subject: [PATCH] added functions for integer hash keys --- src/libgame/setup.c | 12 ++++++++++++ src/libgame/setup.h | 2 ++ src/libgame/types.h | 6 ++++++ 3 files changed, 20 insertions(+) diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 5fb6ecfc..e34ed89a 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -2311,11 +2311,23 @@ unsigned int get_hash_from_string(void *key) return hash; } +unsigned int get_hash_from_integer(void *key) +{ + unsigned int hash = PTR_TO_UINT(key); + + return hash; +} + int hash_key_strings_are_equal(void *key1, void *key2) { return (strEqual((char *)key1, (char *)key2)); } +int hash_key_integers_are_equal(void *key1, void *key2) +{ + return (key1 == key2); +} + SetupFileHash *newSetupFileHash(void) { SetupFileHash *new_hash = diff --git a/src/libgame/setup.h b/src/libgame/setup.h index 99167ea1..c7c65cdf 100644 --- a/src/libgame/setup.h +++ b/src/libgame/setup.h @@ -372,7 +372,9 @@ char *getSetupValue(int, void *); char *getSetupLine(struct TokenInfo *, char *, int); unsigned int get_hash_from_string(void *); +unsigned int get_hash_from_integer(void *); int hash_key_strings_are_equal(void *, void *); +int hash_key_integers_are_equal(void *, void *); int GetZipFileTreeType(char *); char *ExtractZipFileIntoDirectory(char *, char *, int); diff --git a/src/libgame/types.h b/src/libgame/types.h index 0c935a21..6ea71aeb 100644 --- a/src/libgame/types.h +++ b/src/libgame/types.h @@ -66,6 +66,12 @@ typedef unsigned char byte; #define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) +#define PTR_TO_INT(p) ((int) (long) (p)) +#define PTR_TO_UINT(p) ((unsigned int) (unsigned long) (p)) + +#define INT_TO_PTR(i) ((void *) (long) (i)) +#define UINT_TO_PTR(u) ((void *) (unsigned long) (u)) + struct ListNode { -- 2.34.1