RFR: 8142487: Cleanup sun.invoke.util.Wrapper zeroes to be both reliable and lazy
John Rose
john.r.rose at oracle.com
Thu Nov 12 17:45:25 UTC 2015
On Nov 12, 2015, at 6:13 AM, Claes Redestad <claes.redestad at oracle.com> wrote:
>
>
> On 2015-11-12 01:10, John Rose wrote:
>> For better maintainability, I think the zero and identity forms should be created together, not in separate twin code blocks.
>>
>> I think this is a safer, saner way to inject laziness here:
>>
>> - private static void createIdentityForms() {
>> + // Create LF_zero, LF_identity, etc., for the given type.
>> + private static void createIdentityForms(BasicType type) {
>>
>> It means that groups of LFs get lazily created; if that is tolerable for the present purpose, it's easier to reason about.
>>
>> — John
>
> How about this:
>
> http://cr.openjdk.java.net/~redestad/8142487/webrev.02 <http://cr.openjdk.java.net/~redestad/8142487/webrev.02>
Yes, that's fine.
> I'm seeing no increase in number of LambdaForms or NamedFunctions created by merging it all back into one method, while getting rid of MN_* arrays.
Good deal.
> I fixed the obvious mistake in sun.invoke.util.WrapperTest w.r.t byte/char, and since these tests fail against JDK-8141678 I wouldn't mind keeping it around.
OK, if it found a bug it has earned its place.
— John
More information about the core-libs-dev
mailing list