RFR: 8290739: Simplify storage of dump-time class information [v2]

Ioi Lam iklam at openjdk.org
Tue Jul 26 22:30:02 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)

Ioi Lam has updated the pull request incrementally with one additional commit since the last revision:

  added asserts for get_info(); renamed _no_class_loading_should_happen -> !_class_loading_may_happen to avoid double-negation in the code

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/9634/files
  - new: https://git.openjdk.org/jdk/pull/9634/files/25b37011..e642dfe8

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=9634&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=9634&range=00-01

  Stats: 17 lines in 2 files changed: 6 ins; 1 del; 10 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