summaryrefslogtreecommitdiff
path: root/src/hashtable.h
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2023-02-16 19:24:20 -0800
committerKai Stevenson <kai@kaistevenson.com>2023-02-16 19:24:20 -0800
commitdeeb6aa4aa60e22190087a9615447e742c84a19c (patch)
tree11d8ae0e6c684ed5a14657a0fb048a28d45be945 /src/hashtable.h
parent7410d984ae270528ea4f3f16d3473acf807ef92c (diff)
added scoping and a lot of memory leaks
Diffstat (limited to 'src/hashtable.h')
-rw-r--r--src/hashtable.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/hashtable.h b/src/hashtable.h
index 43ab23a..3e4d9d9 100644
--- a/src/hashtable.h
+++ b/src/hashtable.h
@@ -5,15 +5,19 @@ typedef struct HashPair {
char* key;
void* value;
} pair_t;
-pair_t* init_pair(char* key, void* value);
+pair_t init_pair(char* key, void* value);
typedef struct HashTable {
- pair_t** pairs;
+ pair_t* pairs;
int capacity;
int itemCount;
+ struct HashTable* parent;
} hashtable_t;
-hashtable_t* init_hashtable(unsigned int capacity);
+hashtable_t* init_hashtable(unsigned int capacity, hashtable_t* parent);
+void destroy_hashtable(hashtable_t* hashtable);
+hashtable_t* clone_hashtable(hashtable_t* hashtable);
unsigned int get_hash(char* str);
-unsigned int hashtable_add_pair(hashtable_t* hashtable, pair_t* pair);
-pair_t* hashtable_get_pair(hashtable_t* hashtable, char* key);
+unsigned int hashtable_add_pair(hashtable_t* hashtable, pair_t pair);
+pair_t hashtable_get_pair(hashtable_t* hashtable, char* key);
+pair_t hashtable_get_pair_recurse(hashtable_t* origin, char* key);
#endif