On Fri, 28 Aug 2026 15:03:41 GMT, Chris Plummer <[email protected]> wrote:
>> Yasumasa Suenaga has updated the pull request with a new target base due to >> a merge or a rebase. The incremental webrev excludes the unrelated changes >> brought in by the merge/rebase. The pull request contains 13 additional >> commits since the last revision: >> >> - Check null marker for value object >> - Merge branch 'master' into JDK-8390106 >> - Update comments >> - Add isInline() >> - Update >> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/FlattenedInline.java >> >> Co-authored-by: Chris Plummer <[email protected]> >> - Introduce FlattenedInline.java in SA >> - Add comments for Inline >> - Use if-else to create new oop >> - Refactoring >> - Remove isInline() >> - ... and 3 more: https://git.openjdk.org/jdk/compare/35ae68ec...ae766f2a > > src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/FlattenedInline.java > line 40: > >> 38: * in SA to handle a flattened object in same way as an oop. >> 39: */ >> 40: public class FlattenedInline extends Inline { > > Aren't there a bunch of Oop methods that if called on a FlattenedInline would > fail because they assume `handle` really is a pointer to the start of the > object and expect to find an object header there? Where are the safeguards > for that? It seems the only useful thing FlattenedInline is doing is > supporting getKlass() without the need for an object header, but there is a > bunch of other Oop functionality missing, and I'm not sure if it ever needed. I checked base classes `Inline`, `Instance`, and `Oop`. Then I think we have to override (and reports they are not supported in value (flattened) object) `getMark()`, `identityHash()`, and `slowIdentityHash()`. I fixed to do that in new commit, and it passed all of serviceability/sa tests. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/32310#discussion_r3885120057
