RFR: 8290739: Simplify storage of dump-time class information

Ioi Lam iklam at openjdk.org
Mon Jul 25 23:02:37 UTC 2022


Some code clean up in anticipation of future CDS development.

I moved the initialization of `SystemDictionaryShared::_dumptime_table` and `SystemDictionaryShared::_dumptime_lambda_proxy_class_dictionary` to VM bootstrap, so that:
- We don't need to allocate these tables dynamically
- We don't need to check if these tables exist when writing the archive

The current implementation guarantees that `SystemDictionaryShared::_dumptime_table` always contains a `DumpTimeClassInfo` for each `InstanceKlass` that's being considered for inclusion in the CDS archive. I simplified the old `SystemDictionaryShared::find_or_allocate_info_for()` API to


// Guaranteed to return non-NULL value for non-shared classes.
// k must not be a shared class.
DumpTimeClassInfo* SystemDictionaryShared::get_info(InstanceKlass* k)


For more details, please see JBS issue: [JDK-8290739](https://bugs.openjdk.org/browse/JDK-8290739)

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

Commit messages:
 - added comments; fixed minimal build
 - small fix
 - simplification: do not initialize _dumptime_lambda_proxy_class_dictionary on demand
 - 8290739: Refactor SystemDictionaryShared::find_or_allocate_info_for()

Changes: https://git.openjdk.org/jdk/pull/9634/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9634&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8290739
  Stats: 162 lines in 8 files changed: 23 ins; 57 del; 82 mod
  Patch: https://git.openjdk.org/jdk/pull/9634.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/9634/head:pull/9634

PR: https://git.openjdk.org/jdk/pull/9634


More information about the hotspot-runtime-dev mailing list