From a7de63bb9d6308429c0ba43882425bb961672adc Mon Sep 17 00:00:00 2001 From: Timerix22 Date: Mon, 22 May 2023 03:06:03 +0600 Subject: [PATCH] new Hashtable functions --- src/DtsodParser/DtsodV24_deserialize.c | 2 +- src/Hashtable/Hashtable.c | 35 +++++++++++++++++++++++--- src/Hashtable/Hashtable.h | 5 +++- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/DtsodParser/DtsodV24_deserialize.c b/src/DtsodParser/DtsodV24_deserialize.c index b755579..5c201aa 100644 --- a/src/DtsodParser/DtsodV24_deserialize.c +++ b/src/DtsodParser/DtsodV24_deserialize.c @@ -318,7 +318,7 @@ Maybe __deserialize(char** _text, bool _calledRecursively) { partOfDollarList=false; Autoarr(Unitype)* list; Unitype lu; - if(Hashtable_try_get(dict,nameCPtr, &lu)){ + if(Hashtable_tryGet(dict,nameCPtr, &lu)){ list=(Autoarr(Unitype)*)lu.VoidPtr; } else{ diff --git a/src/Hashtable/Hashtable.c b/src/Hashtable/Hashtable.c index c1d3e20..c81d399 100644 --- a/src/Hashtable/Hashtable.c +++ b/src/Hashtable/Hashtable.c @@ -67,11 +67,19 @@ Autoarr(KVPair)* getrow(Hashtable* ht, char* key, bool can_expand){ return ar; } +/// @param key must be heap allocated +/// Hashtable_free will free this pointer void Hashtable_add(Hashtable* ht, char* key, Unitype u){ KVPair p={ .key=key, .value=u }; Autoarr_add(getrow(ht,key,true),p); } +void Hashtable_addMany(Hashtable* ht, KVPair* pair_array, u32 count){ + for(u32 i=0; i