RFR: 8263834: Work around gdb <incomplete type> for HashtableEntry

Ioi Lam iklam at openjdk.java.net
Fri Mar 19 07:02:39 UTC 2021


On Fri, 19 Mar 2021 06:51:42 GMT, David Holmes <dholmes at openjdk.org> wrote:

> Does this affect NMT?

It doesn't. The part of the code that interacts with NMT is unchanged:

template <MEMFLAGS F> BasicHashtableEntry<F>* BasicHashtable<F>::new_entry(unsigned int hashValue) {
  BasicHashtableEntry<F>* entry = new_entry_free_list();

  if (entry == NULL) {
    if (_first_free_entry + _entry_size >= _end_block) {
      int block_size = MAX2((int)_table_size / 2, (int)_number_of_entries); // pick a reasonable value
      block_size = clamp(block_size, 2, 512); // but never go out of this range
      int len = round_down_power_of_2(_entry_size * block_size);
      assert(len >= _entry_size, "");
      _first_free_entry = NEW_C_HEAP_ARRAY2(char, len, F, CURRENT_PC);   <<<<<<< HERE
      _entry_blocks.append(_first_free_entry);
      _end_block = _first_free_entry + len;
    }
    entry = (BasicHashtableEntry<F>*)_first_free_entry;
    _first_free_entry += _entry_size;
  }

  assert(_entry_size % HeapWordSize == 0, "");
  entry->set_hash(hashValue);
  return entry;
}

-------------

PR: https://git.openjdk.java.net/jdk/pull/3084


More information about the hotspot-dev mailing list