From deeb6aa4aa60e22190087a9615447e742c84a19c Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Thu, 16 Feb 2023 19:24:20 -0800 Subject: added scoping and a lot of memory leaks --- src/hashtable.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/hashtable.h') 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 -- cgit v1.3.1