On Thu, 21 May 2026 23:09:11 GMT, Matias Saavedra Silva <[email protected]> wrote:
> Classes can be excluded from the CDS archive for a variety of different > reasons, such as having old classfile versions or being stored in a signed > jar. These exclusions can extend to other classes that depend on an excluded > class such as supers or interfaces. > > Flat and null-restricted fields have layouts that are calculated when a > classfile is parsed and they rely on the klass of the field being consistent > between dumptime and runtime, thus adding a new dependency. This patch adds > inline flat and null-restricted fields as new dependencies that may lead to > the holding class being excluded from the CDS archive. Verified with a new > test and tier 1-5 tests. > > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). src/hotspot/share/classfile/systemDictionaryShared.cpp line 313: > 311: Handle loader(current, k->class_loader()); > 312: Symbol* field_klass_name = > Signature::strip_envelope(fs.signature()); > 313: Klass* field_klass = > SystemDictionary::find_instance_or_array_klass(current, field_klass_name, > loader); Why doing a system dictionary search for flat fields when a pointer is already directly available in the _inline_layout_info_array? ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/2464#discussion_r3289933315
