pHashTable->numEntries = pHashTable->numDeadEntries = 0;
pHashTable->freeFunc = freeFunc;
pHashTable->pEntries =
- (HashEntry*) malloc(pHashTable->tableSize * sizeof(HashEntry));
+ (HashEntry*) calloc(pHashTable->tableSize, sizeof(HashEntry));
if (pHashTable->pEntries == NULL) {
free(pHashTable);
return NULL;
}
- memset(pHashTable->pEntries, 0, pHashTable->tableSize * sizeof(HashEntry));
return pHashTable;
}
*/
int dvmHashForeachRemove(HashTable* pHashTable, HashForeachRemoveFunc func)
{
- int i, val;
+ int i, val, tableSize;
- for (i = 0; i < pHashTable->tableSize; i++) {
+ tableSize = pHashTable->tableSize;
+
+ for (i = 0; i < tableSize; i++) {
HashEntry* pEnt = &pHashTable->pEntries[i];
if (pEnt->data != NULL && pEnt->data != HASH_TOMBSTONE) {
*/
int dvmHashForeach(HashTable* pHashTable, HashForeachFunc func, void* arg)
{
- int i, val;
+ int i, val, tableSize;
- for (i = 0; i < pHashTable->tableSize; i++) {
+ tableSize = pHashTable->tableSize;
+
+ for (i = 0; i < tableSize; i++) {
HashEntry* pEnt = &pHashTable->pEntries[i];
if (pEnt->data != NULL && pEnt->data != HASH_TOMBSTONE) {