RFR: 8335922: Incorrect @Stable usage of LambdaForm$Name.index [v4]

Chen Liang liach at openjdk.org
Tue Jul 16 03:10:30 UTC 2024


On Tue, 16 Jul 2024 00:39:19 GMT, ExE Boss <duke at openjdk.org> wrote:

>> Chen Liang has updated the pull request incrementally with four additional commits since the last revision:
>> 
>>  - Make LambdaForm.Name index final
>>  - Revert "8335922: Incorrect stable usage of LambdaForm$Name.index"
>>    
>>    This reverts commit 7d111ba3655c4c282399a4793e2cf5d91618432f.
>>  - Revert "We have sufficient space in short, use +1 offset"
>>    
>>    This reverts commit 0743c5f924fa07ea13f8545604f870091fa8d23a.
>>  - Revert "Encapsulate offsetIndex, share computation result"
>>    
>>    This reverts commit db805834d7117e5752bebcbd671afa6c85ff2cf0.
>
> src/java.base/share/classes/java/lang/invoke/LambdaForm.java line 1388:
> 
>> 1386:         Name withIndex(int i) {
>> 1387:             return new Name(i, type, function, arguments, constraint);
>> 1388:         }
> 
> Maybe also do what `Name​::withConstraint​(Object)` does?
> Suggestion:
> 
>         Name withIndex(int i) {
>             if (i == this.index) return this;
>             return new Name(i, type, function, arguments, constraint);
>         }

Sure, initIndex and newIndex reuses same index object too.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20178#discussion_r1678694062


More information about the core-libs-dev mailing list