added const qualifier to KVPair
This commit is contained in:
parent
ad276eae12
commit
48d449a605
@ -58,7 +58,7 @@ void Hashtable_expand(Hashtable* ht){
|
||||
ht->rows=newrows;
|
||||
}
|
||||
|
||||
Autoarr(KVPair)* getrow(Hashtable* ht, char* key, bool can_expand){
|
||||
Autoarr(KVPair)* getrow(Hashtable* ht, const char* key, bool can_expand){
|
||||
u32 hash=hashs(hash_sdbm32, key);
|
||||
Autoarr(KVPair)* ar=ht->rows[hash%HT_HEIGHTS[ht->hein]];
|
||||
if(can_expand && Autoarr_length(ar)==Autoarr_max_length(ar))
|
||||
@ -69,7 +69,7 @@ Autoarr(KVPair)* getrow(Hashtable* ht, char* key, bool can_expand){
|
||||
|
||||
/// @param key must be heap allocated
|
||||
/// Hashtable_free will free this pointer
|
||||
void Hashtable_add(Hashtable* ht, char* key, Unitype u){
|
||||
void Hashtable_add(Hashtable* ht, const char* key, Unitype u){
|
||||
KVPair p={ .key=key, .value=u };
|
||||
Autoarr_add(getrow(ht,key,true),p);
|
||||
}
|
||||
@ -81,7 +81,7 @@ void Hashtable_addMany(Hashtable* ht, KVPair* pair_array, u32 count){
|
||||
}
|
||||
|
||||
// returns null or pointer to value in hashtable
|
||||
Unitype* Hashtable_getPtr(Hashtable* ht, char* key){
|
||||
Unitype* Hashtable_getPtr(Hashtable* ht, const char* key){
|
||||
Autoarr(KVPair)* ar=getrow(ht,key,false);
|
||||
u32 arlen=Autoarr_length(ar);
|
||||
for(u32 i=0;i<arlen;i++){
|
||||
@ -91,7 +91,7 @@ Unitype* Hashtable_getPtr(Hashtable* ht, char* key){
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Unitype Hashtable_get(Hashtable* ht, char* key){
|
||||
Unitype Hashtable_get(Hashtable* ht, const char* key){
|
||||
Autoarr(KVPair)* ar=getrow(ht,key,false);
|
||||
u32 arlen=Autoarr_length(ar);
|
||||
for(u32 i=0;i<arlen;i++){
|
||||
@ -101,14 +101,14 @@ Unitype Hashtable_get(Hashtable* ht, char* key){
|
||||
return UniNull;
|
||||
}
|
||||
|
||||
bool Hashtable_tryGet(Hashtable* ht, char* key, Unitype* output){
|
||||
bool Hashtable_tryGet(Hashtable* ht, const char* key, Unitype* output){
|
||||
Unitype u=Hashtable_get(ht,key);
|
||||
*output=u;
|
||||
return !Unitype_isUniNull(u);
|
||||
}
|
||||
|
||||
|
||||
bool Hashtable_trySet(Hashtable* ht, char* key, Unitype u){
|
||||
bool Hashtable_trySet(Hashtable* ht, const char* key, Unitype u){
|
||||
Unitype* val=Hashtable_getPtr(ht,key);
|
||||
if(val==NULL)
|
||||
return false;
|
||||
@ -116,7 +116,7 @@ bool Hashtable_trySet(Hashtable* ht, char* key, Unitype u){
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Hashtable_tryAdd(Hashtable* ht, char* key, Unitype u){
|
||||
bool Hashtable_tryAdd(Hashtable* ht, const char* key, Unitype u){
|
||||
Unitype* val=Hashtable_getPtr(ht,key);
|
||||
if(val==NULL){
|
||||
Hashtable_add(ht, key, u);
|
||||
@ -125,7 +125,7 @@ bool Hashtable_tryAdd(Hashtable* ht, char* key, Unitype u){
|
||||
return false;
|
||||
}
|
||||
|
||||
void Hashtable_addOrSet(Hashtable* ht, char* key, Unitype u){
|
||||
void Hashtable_addOrSet(Hashtable* ht, const char* key, Unitype u){
|
||||
Unitype* val=Hashtable_getPtr(ht, key);
|
||||
if(val==NULL)
|
||||
Hashtable_add(ht, key, u); // add
|
||||
|
||||
@ -23,18 +23,18 @@ u16 Hashtable_height(Hashtable* ht);
|
||||
// don't add pairs with the same keys,
|
||||
// or something weird will happen
|
||||
// if not sure, use Hashtable_addOrSet()
|
||||
void Hashtable_add(Hashtable* ht, char* key, Unitype u);
|
||||
void Hashtable_add(Hashtable* ht, const char* key, Unitype u);
|
||||
|
||||
void Hashtable_addOrSet(Hashtable* ht, char* key, Unitype u);
|
||||
void Hashtable_addOrSet(Hashtable* ht, const char* key, Unitype u);
|
||||
void Hashtable_addMany(Hashtable* ht, KVPair* pair_array, u32 count);
|
||||
bool Hashtable_tryAdd(Hashtable* ht, char* key, Unitype u);
|
||||
bool Hashtable_trySet(Hashtable* ht, char* key, Unitype u);
|
||||
bool Hashtable_tryAdd(Hashtable* ht, const char* key, Unitype u);
|
||||
bool Hashtable_trySet(Hashtable* ht, const char* key, Unitype u);
|
||||
|
||||
// returns null or pointer to value in hashtable
|
||||
Unitype* Hashtable_getPtr(Hashtable* ht, char* key);
|
||||
Unitype* Hashtable_getPtr(Hashtable* ht, const char* key);
|
||||
|
||||
Unitype Hashtable_get(Hashtable* ht, char* key);
|
||||
bool Hashtable_tryGet(Hashtable* ht, char* key, Unitype* output);
|
||||
Unitype Hashtable_get(Hashtable* ht, const char* key);
|
||||
bool Hashtable_tryGet(Hashtable* ht, const char* key, Unitype* output);
|
||||
|
||||
#define Hashtable_foreach(HT, EL, codeblock...) { \
|
||||
u16 hmax=Hashtable_height(HT); \
|
||||
|
||||
@ -8,7 +8,7 @@ extern "C" {
|
||||
#include "../Autoarr/Autoarr.h"
|
||||
|
||||
STRUCT(KVPair,
|
||||
char* key;
|
||||
const char* key;
|
||||
Unitype value;
|
||||
)
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@ typedef void (*freeMembers_t)(void*);
|
||||
typedef char* (*toString_t)(void* obj, u32 fmt);
|
||||
|
||||
STRUCT(ktDescriptor,
|
||||
char* name;
|
||||
const char* name;
|
||||
ktid id;
|
||||
u16 size;
|
||||
freeMembers_t freeMembers; // NULL or function which frees all struct members
|
||||
|
||||
Loading…
Reference in New Issue
Block a user