On Wed, 18 Mar 2026 10:29:33 GMT, Marc Chevalier <[email protected]> wrote:

> Given this, I don't understand how the code under the case T_METADATA: 
> ensures we are adding as T_OBJECT only the receiver, and not every scalarized 
> argument when _has_inline_recv is true

If I get your question right, I think the missing point is that the receiver is 
the first argument (for non‑static methods), and the fingerprint should 
preserve that order, so the first `T_METADATA` encountered while 
`value_object_count == 0` is the receiver’s inline‑type start. That’s why it 
emits a single `T_OBJECT` there and sets `skipping_inline_recv`. It then 
"ignores" all receiver fields until the matching `T_VOID` brings 
`value_object_count` back to 0 and clears the `skipping_inline_recv` flag. Any 
later inline‑type arguments should occur after this point, with 
`skipping_inline_recv` already false, so they are handled normally and are not 
"collapsed" to `T_OBJECT`.

I hope this makes sense somehow...

> Should we rename the PR/issue to be more descriptive?

Good idea! Renaming...

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

PR Comment: https://git.openjdk.org/valhalla/pull/2185#issuecomment-4082146697

Reply via email to