RFR: 8335922: Incorrect @Stable usage of LambdaForm$Name.index [v3]
Chen Liang
liach at openjdk.org
Mon Jul 15 16:43:51 UTC 2024
On Mon, 15 Jul 2024 15:57:30 GMT, Chen Liang <liach at openjdk.org> wrote:
>> The `@Stable` on the `index` field is incorrect, as stable only avoids inlining `0`. Solution is to use bit flip on the actual index (and rename the field to `flippedIndex`), so we use -1 to -256 (mapping to 0 to 255) and 0 the default value is used as an unset indicator.
>
> Chen Liang has updated the pull request incrementally with one additional commit since the last revision:
>
> Encapsulate offsetIndex, share computation result
Hmm, I don't think index is that closely tied to LF interpretation; it's only used to find the output values from a `Name`.
After another more general look, I think we might just turn the `index` field final: all its other fields are already final, and the lazy setting of `index` is just a trivial attempt to avoid reallocation if the index is not initialized, and such an approach will actually be harmful once we have value objects from valhalla.
Should I make it `final` instead, so we can prepare `Name` for the Valhalla value class migration?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20178#issuecomment-2228942425
More information about the core-libs-dev
mailing list