On Thu, 23 Apr 2026 15:02:35 GMT, Casper Norrbin <[email protected]> wrote:
>> Hi everyone, >> >> One of the `FlatFieldPayload` constructors uses `container->klass()` when >> calling `inline_layout_info_adr`, even though the layout should be resolved >> from `field_holder()`. When JNI `GetObjectField` or `SetObjectField` >> accesses an inherited flat field on a derived class it ends up looking up >> inline layout info from the that class instead of the class that actually >> declares the field. In debug builds this triggers an assert, and in general >> it is the wrong class to use for the lookup. >> >> This path is only reached through JNI field access. The original fix is from >> @stefank. I added a regression test that tests JNI reads and writes of >> inherited flat fields and checks that the inherited base field is resolved >> correctly. The new test hits the assert before the fix and passes with the >> patch applied. >> >> Testing: >> - Tier 1 >> - New test testing modifying inherited flat fields through JNI >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Casper Norrbin has updated the pull request incrementally with one additional > commit since the last revision: > > feedback fixes LGTM. Thank you! ------------- Marked as reviewed by phubner (Committer). PR Review: https://git.openjdk.org/valhalla/pull/2355#pullrequestreview-4163522386
