return malloc(nbytes);
char *entryAddr, *entryLimit; PRUint32 i, capacity, entrySize; PRBool didRemove; PLDHashEntryHdr *entry; PLDHashOperator op;  entryAddr = table->entryStore; entrySize = table->entrySize; capacity = PL_DHASH_TABLE_SIZE(table); entryLimit = entryAddr + capacity * entrySize; i = 0; didRemove = PR_FALSE; while (entryAddr < entryLimit) { entry = (PLDHashEntryHdr *)entryAddr; if (ENTRY_IS_LIVE(entry)) { op = etor(table, entry, i++, arg); if (op & PL_DHASH_REMOVE) { METER(table->stats.removeEnums++); PL_DHashTableRawRemove(table, entry); didRemove = PR_TRUE; } if (op & PL_DHASH_STOP) break; } entryAddr += entrySize; }   if (didRemove && (table->removedCount >= capacity >> 2 || (capacity > PL_DHASH_MIN_SIZE && table->entryCount <= MIN_LOAD(table, capacity)))) { METER(table->stats.enumShrinks++); capacity = table->entryCount; capacity += capacity >> 1; if (capacity < PL_DHASH_MIN_SIZE) capacity = PL_DHASH_MIN_SIZE; (void) ChangeTable(table, PR_CeilingLog2(capacity) - (PL_DHASH_BITS - table->hashShift)); } return i;
PR_IMPLEMENT(void *)PL_DHashAllocTable(PLDHashTable *table, PRUint32 nbytes){    return malloc(nbytes);}