RFR: 8279500: Remove FileMapHeader::_heap_obj_roots

Ioi Lam iklam at openjdk.java.net
Wed Jan 5 23:23:30 UTC 2022


`FileMapHeader::_heap_obj_roots` is an `narrowOop` that's used to remember the `objArray` that stores all the roots of archived heap objects. Reading/writing of this field requires some ad-hoc code in many places.

There's already a standard way of reading/writing oops in the CDS archive -- `SerializeClosure::do_oop()`. See here for an example:

- https://github.com/iklam/jdk/blame/ad1dc9c2ae5463363aff20072a3f2ca4ea23acd2/src/hotspot/share/memory/universe.cpp#L243

We should use the same pattern in `HeapShared.seralize()` to write/restore `HeapShared::_roots`. That way we can remove `FileMapHeader::_heap_obj_roots` and the associated ad-hoc code.

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

Commit messages:
 - 8279500: Remove FileMapHeader::_heap_obj_roots

Changes: https://git.openjdk.java.net/jdk/pull/6973/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6973&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8279500
  Stats: 44 lines in 6 files changed: 16 ins; 18 del; 10 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6973.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6973/head:pull/6973

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


More information about the hotspot-runtime-dev mailing list