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;
}
{
if (!resizeHash(pHashTable, pHashTable->tableSize * 2)) {
/* don't really have a way to indicate failure */
- LOGE("Dalvik hash resize failure");
+ ALOGE("Dalvik hash resize failure");
dvmAbort();
}
/* note "pEntry" is now invalid */
} else {
- //LOGW("okay %d/%d/%d",
+ //ALOGW("okay %d/%d/%d",
// pHashTable->numEntries, pHashTable->tableSize,
// (pHashTable->tableSize * LOAD_NUMER) / LOAD_DENOM);
}
*/
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) {