Sub-classes of `InstanceKlass` can't have C++ fields because they would end up 
overlayed on top of the vtable and other dynamically sized sections of the 
`InstanceKlass` object.

To handle that the `InlineKlass` has a companion class named 
`InlineKlassFixedBlock`, which lists all the member fields that belongs to the 
InlineKlass, and an instance of that gets stamped into the `InlineKlass` object 
after the parts that are provided by the `InstanceKlass`.

I propose a few changes:

1) Move `InlineKlassFixedBlock` away from instanceKlass.hpp and place it inside 
inlineKlass.hpp instead.

2) Nest `InlineKlassFixedBlock` it inside `InlineKlass`. It's only `InlineKlass 
`(and the compilers) that touch these fields, so it doesn't have to be a 
public, top-level class.

3) Rename it from `InlineKlassFixedBlock` to `InlineKlass::Members`. I think 
that "fixed block" term is unclear and doesn't help the reader understand its 
role in the `InlineKlass`. Hopefully, the name `Members` is a clearer.

WDYT?

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

Commit messages:
 - 8373864: [lworld] Hide and rename InstanceKlassFixedBlock

Changes: https://git.openjdk.org/valhalla/pull/1812/files
  Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1812&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8373864
  Stats: 205 lines in 15 files changed: 81 ins; 53 del; 71 mod
  Patch: https://git.openjdk.org/valhalla/pull/1812.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1812/head:pull/1812

PR: https://git.openjdk.org/valhalla/pull/1812

Reply via email to