53 |
53 |
54 if (entry == NULL) { |
54 if (entry == NULL) { |
55 if (_first_free_entry + _entry_size >= _end_block) { |
55 if (_first_free_entry + _entry_size >= _end_block) { |
56 int block_size = MIN2(512, MAX2((int)_table_size / 2, (int)_number_of_entries)); |
56 int block_size = MIN2(512, MAX2((int)_table_size / 2, (int)_number_of_entries)); |
57 int len = _entry_size * block_size; |
57 int len = _entry_size * block_size; |
58 len = 1 << log2_intptr(len); // round down to power of 2 |
58 len = 1 << log2_int(len); // round down to power of 2 |
59 assert(len >= _entry_size, ""); |
59 assert(len >= _entry_size, ""); |
60 _first_free_entry = NEW_C_HEAP_ARRAY2(char, len, F, CURRENT_PC); |
60 _first_free_entry = NEW_C_HEAP_ARRAY2(char, len, F, CURRENT_PC); |
61 _end_block = _first_free_entry + len; |
61 _end_block = _first_free_entry + len; |
62 } |
62 } |
63 entry = (BasicHashtableEntry<F>*)_first_free_entry; |
63 entry = (BasicHashtableEntry<F>*)_first_free_entry; |