diff options
| author | Kai Stevenson <kai@kaistevenson.com> | 2023-02-16 19:24:20 -0800 |
|---|---|---|
| committer | Kai Stevenson <kai@kaistevenson.com> | 2023-02-16 19:24:20 -0800 |
| commit | deeb6aa4aa60e22190087a9615447e742c84a19c (patch) | |
| tree | 11d8ae0e6c684ed5a14657a0fb048a28d45be945 /src/hashtable.h | |
| parent | 7410d984ae270528ea4f3f16d3473acf807ef92c (diff) | |
added scoping and a lot of memory leaks
Diffstat (limited to 'src/hashtable.h')
| -rw-r--r-- | src/hashtable.h | 14 |
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 |
