52 #ifndef INCLUDED_PDStaticHash_h
53 #define INCLUDED_PDStaticHash_h
66 #define static_hash_idx(mask, shift, key) (((long)key ^ ((long)key >> shift)) & mask)
74 #define PDStaticHashIdx(stha, key) static_hash_idx(stha->mask, stha->shift, key)
82 #define PDStaticHashValueForHash(stha, hash) stha->table[hash]
90 #define PDStaticHashValueForKey(stha, key) stha->table[PDStaticHashIdx(stha, key)]
99 #define PDStaticHashValueForHashAs(stha, hash, type) as(type, PDStaticHashValueForHash(stha, hash))
108 #define PDStaticHashValueForKeyAs(stha, key, type) as(type, PDStaticHashValueForKey(stha, key))
long PDInteger
Definition: PDDefines.h:184
unsigned char PDBool
Definition: PDDefines.h:207
void PDStaticHashDisownKeysValues(PDStaticHashRef sh, PDBool disownKeys, PDBool disownValues)
Definition: PDStaticHash.c:101
Definition: pd_internal.h:773
Definitions for the Pajdeg interface.
PDStaticHashRef PDStaticHashCreate(PDInteger entries, void **keys, void **values)
Definition: PDStaticHash.c:40