From 109d60fca3d3cf495efef48981dfefe197741312 Mon Sep 17 00:00:00 2001
From: "Sven M. Hallberg" <pesco@khjk.org>
Date: Tue, 30 Apr 2013 17:44:54 +0200
Subject: [PATCH] make hashtable keys const

---
 src/datastructures.c |  8 ++++----
 src/internal.h       | 10 +++++-----
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/datastructures.c b/src/datastructures.c
index b1e4f754..5993e457 100644
--- a/src/datastructures.c
+++ b/src/datastructures.c
@@ -116,7 +116,7 @@ HHashTable* h_hashtable_new(HArena *arena, HEqualFunc equalFunc, HHashFunc hashF
   return ht;
 }
 
-void* h_hashtable_get(HHashTable* ht, void* key) {
+void* h_hashtable_get(HHashTable* ht, const void* key) {
   HHashValue hashval = ht->hashFunc(key);
 #ifdef CONSISTENCY_CHECK
   assert((ht->capacity & (ht->capacity - 1)) == 0); // capacity is a power of 2
@@ -134,7 +134,7 @@ void* h_hashtable_get(HHashTable* ht, void* key) {
   return NULL;
 }
 
-void h_hashtable_put(HHashTable* ht, void* key, void* value) {
+void h_hashtable_put(HHashTable* ht, const void* key, void* value) {
   // # Start with a rebalancing
   //h_hashtable_ensure_capacity(ht, ht->used + 1);
 
@@ -166,7 +166,7 @@ void h_hashtable_put(HHashTable* ht, void* key, void* value) {
   hte->hashval = hashval;
 }
 
-int   h_hashtable_present(HHashTable* ht, void* key) {
+int   h_hashtable_present(HHashTable* ht, const void* key) {
   HHashValue hashval = ht->hashFunc(key);
 #ifdef CONSISTENCY_CHECK
   assert((ht->capacity & (ht->capacity - 1)) == 0); // capacity is a power of 2
@@ -182,7 +182,7 @@ int   h_hashtable_present(HHashTable* ht, void* key) {
   }
   return false;
 }
-void  h_hashtable_del(HHashTable* ht, void* key) {
+void  h_hashtable_del(HHashTable* ht, const void* key) {
   HHashValue hashval = ht->hashFunc(key);
 #ifdef CONSISTENCY_CHECK
   assert((ht->capacity & (ht->capacity - 1)) == 0); // capacity is a power of 2
diff --git a/src/internal.h b/src/internal.h
index edb0c217..d4ba829b 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -96,7 +96,7 @@ typedef bool (*HEqualFunc)(const void* key1, const void* key2);
 
 typedef struct HHashTableEntry_ {
   struct HHashTableEntry_ *next;
-  void* key;
+  const void* key;
   void* value;
   HHashValue hashval;
 } HHashTableEntry;
@@ -248,10 +248,10 @@ HSlist* h_slist_remove_all(HSlist *slist, const void* item);
 void h_slist_free(HSlist *slist);
 
 HHashTable* h_hashtable_new(HArena *arena, HEqualFunc equalFunc, HHashFunc hashFunc);
-void* h_hashtable_get(HHashTable* ht, void* key);
-void h_hashtable_put(HHashTable* ht, void* key, void* value);
-int   h_hashtable_present(HHashTable* ht, void* key);
-void  h_hashtable_del(HHashTable* ht, void* key);
+void* h_hashtable_get(HHashTable* ht, const void* key);
+void  h_hashtable_put(HHashTable* ht, const void* key, void* value);
+int   h_hashtable_present(HHashTable* ht, const void* key);
+void  h_hashtable_del(HHashTable* ht, const void* key);
 void  h_hashtable_free(HHashTable* ht);
 static inline bool h_hashtable_empty(HHashTable* ht) { return (ht->used == 0); }
 
-- 
GitLab