added functions for integer hash keys
authorHolger Schemel <info@artsoft.org>
Wed, 21 Feb 2024 19:19:49 +0000 (20:19 +0100)
committerHolger Schemel <info@artsoft.org>
Wed, 21 Feb 2024 19:19:49 +0000 (20:19 +0100)
src/libgame/setup.c
src/libgame/setup.h
src/libgame/types.h

index 5fb6ecfcea7127a345d3d0024a95519923d0d1ef..e34ed89adcf198497e92c2f8ca948982f1f793c0 100644 (file)
@@ -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 =
index 99167ea16f42c3e563966d5905324f4a0427a130..c7c65cdf7a2706e00c21c0f82c68981c4780aa15 100644 (file)
@@ -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);
index 0c935a21efd2d6e78e4304559643a74b251312d9..6ea71aeba0ed210e5458db15c2523414b03b8a7c 100644 (file)
@@ -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
 {