Lines Matching refs:pHashTable

54     HashTable* pHashTable;  in mzHashTableCreate()  local
58 pHashTable = (HashTable*) malloc(sizeof(*pHashTable)); in mzHashTableCreate()
59 if (pHashTable == NULL) in mzHashTableCreate()
62 pHashTable->tableSize = roundUpPower2(initialSize); in mzHashTableCreate()
63 pHashTable->numEntries = pHashTable->numDeadEntries = 0; in mzHashTableCreate()
64 pHashTable->freeFunc = freeFunc; in mzHashTableCreate()
65 pHashTable->pEntries = in mzHashTableCreate()
66 (HashEntry*) calloc((size_t)pHashTable->tableSize, sizeof(HashTable)); in mzHashTableCreate()
67 if (pHashTable->pEntries == NULL) { in mzHashTableCreate()
68 free(pHashTable); in mzHashTableCreate()
72 return pHashTable; in mzHashTableCreate()
78 void mzHashTableClear(HashTable* pHashTable) in mzHashTableClear() argument
83 pEnt = pHashTable->pEntries; in mzHashTableClear()
84 for (i = 0; i < pHashTable->tableSize; i++, pEnt++) { in mzHashTableClear()
90 if (pHashTable->freeFunc != NULL) in mzHashTableClear()
91 (*pHashTable->freeFunc)(pEnt->data); in mzHashTableClear()
96 pHashTable->numEntries = 0; in mzHashTableClear()
97 pHashTable->numDeadEntries = 0; in mzHashTableClear()
103 void mzHashTableFree(HashTable* pHashTable) in mzHashTableFree() argument
105 if (pHashTable == NULL) in mzHashTableFree()
107 mzHashTableClear(pHashTable); in mzHashTableFree()
108 free(pHashTable->pEntries); in mzHashTableFree()
109 free(pHashTable); in mzHashTableFree()
116 static int countTombStones(HashTable* pHashTable) in countTombStones() argument
120 for (count = i = 0; i < pHashTable->tableSize; i++) { in countTombStones()
121 if (pHashTable->pEntries[i].data == HASH_TOMBSTONE) in countTombStones()
138 static bool resizeHash(HashTable* pHashTable, int newSize) in resizeHash() argument
143 assert(countTombStones(pHashTable) == pHashTable->numDeadEntries); in resizeHash()
150 for (i = 0; i < pHashTable->tableSize; i++) { in resizeHash()
151 void* data = pHashTable->pEntries[i].data; in resizeHash()
153 int hashValue = pHashTable->pEntries[i].hashValue; in resizeHash()
166 free(pHashTable->pEntries); in resizeHash()
167 pHashTable->pEntries = pNewEntries; in resizeHash()
168 pHashTable->tableSize = newSize; in resizeHash()
169 pHashTable->numDeadEntries = 0; in resizeHash()
171 assert(countTombStones(pHashTable) == 0); in resizeHash()
180 void* mzHashTableLookup(HashTable* pHashTable, unsigned int itemHash, void* item, in mzHashTableLookup() argument
187 assert(pHashTable->tableSize > 0); in mzHashTableLookup()
192 pEntry = &pHashTable->pEntries[itemHash & (pHashTable->tableSize - 1)]; in mzHashTableLookup()
193 pEnd = &pHashTable->pEntries[pHashTable->tableSize]; in mzHashTableLookup()
205 if (pHashTable->tableSize == 1) in mzHashTableLookup()
207 pEntry = pHashTable->pEntries; in mzHashTableLookup()
217 pHashTable->numEntries++; in mzHashTableLookup()
222 if ((pHashTable->numEntries + pHashTable->numDeadEntries) * LOAD_DENOM in mzHashTableLookup()
223 > pHashTable->tableSize * LOAD_NUMER) { in mzHashTableLookup()
224 if (!resizeHash(pHashTable, pHashTable->tableSize * 2)) { in mzHashTableLookup()
237 assert(pHashTable->numEntries < pHashTable->tableSize); in mzHashTableLookup()
254 bool mzHashTableRemove(HashTable* pHashTable, unsigned int itemHash, void* item) in mzHashTableRemove() argument
259 assert(pHashTable->tableSize > 0); in mzHashTableRemove()
262 pEntry = &pHashTable->pEntries[itemHash & (pHashTable->tableSize - 1)]; in mzHashTableRemove()
263 pEnd = &pHashTable->pEntries[pHashTable->tableSize]; in mzHashTableRemove()
268 pHashTable->numEntries--; in mzHashTableRemove()
269 pHashTable->numDeadEntries++; in mzHashTableRemove()
275 if (pHashTable->tableSize == 1) in mzHashTableRemove()
277 pEntry = pHashTable->pEntries; in mzHashTableRemove()
291 int mzHashForeach(HashTable* pHashTable, HashForeachFunc func, void* arg) in mzHashForeach() argument
295 for (i = 0; i < pHashTable->tableSize; i++) { in mzHashForeach()
296 HashEntry* pEnt = &pHashTable->pEntries[i]; in mzHashForeach()
314 int countProbes(HashTable* pHashTable, unsigned int itemHash, const void* item, in countProbes() argument
321 assert(pHashTable->tableSize > 0); in countProbes()
326 pEntry = &pHashTable->pEntries[itemHash & (pHashTable->tableSize - 1)]; in countProbes()
327 pEnd = &pHashTable->pEntries[pHashTable->tableSize]; in countProbes()
338 if (pHashTable->tableSize == 1) in countProbes()
340 pEntry = pHashTable->pEntries; in countProbes()
359 void mzHashTableProbeCount(HashTable* pHashTable, HashCalcFunc calcFunc, in mzHashTableProbeCount() argument
368 for (mzHashIterBegin(pHashTable, &iter); !mzHashIterDone(&iter); in mzHashTableProbeCount()
373 count = countProbes(pHashTable, (*calcFunc)(data), data, cmpFunc); in mzHashTableProbeCount()
385 minProbe, maxProbe, totalProbe, numEntries, pHashTable->tableSize, in mzHashTableProbeCount()