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

Reply via email to