[9] RFR (L): 8057042: LambdaFormEditor: derive new LFs from a base LF

Peter Levart peter.levart at gmail.com
Wed Sep 10 11:57:36 UTC 2014


On 09/03/2014 03:25 PM, Vladimir Ivanov wrote:
> Peter,
>
> Thanks for the feedback.
>
> > In LambdaFormEditor, where Transform[] is promoted into
>> ConcurrentHashMap<Transform, Transform>:
>>
>>   339                     ConcurrentHashMap<Transform, Transform> m =
>> new ConcurrentHashMap<>(MAX_CACHE_ARRAY_SIZE * 2);
>>   340                     for (Transform k : ta) {
>>   341                         if (k != null)  continue;
>>   342                         m.put(k, k);
>>   343                     }
>>   344                     lambdaForm.transformCache = m;
>>   345                     // The second iteration will update for this
>> query, concurrently.
>>   346                     continue;
>>
>>
>> I think line 341 is wrong. It should be:
>>
>>      if (k == null) break;
>>
>> shouldn't it?
> Good catch! Fixed.
>

I think it can even be removed or replaced with something like:

     assert k != null;

...since null entry in array is not possible in this situation - 
promotion to CHM happens only when array is full.


Regards, Peter

> Best regards,
> Vladimir Ivanov
>>
>>
>>
>> Regards, Peter
>>
>>
>>>
>>> On 9/2/14, 5:57 PM, Vladimir Ivanov wrote:
>>>> https://bugs.openjdk.java.net/browse/JDK-8057042
>>>>
>>>> LambdaFormEditor provides an API to transform LambdaForms. Deriving 
>>>> new
>>>> LambdaForms from a base one allows to cache and reuse results of
>>>> repeated transformations.
>>>>
>>>> BMH binding is rewritten to use LambdaFormEditor.
>>>>
>>>> Testing: jdk/java/lang/invoke, jdk/java/util/streams, nashorn, 
>>>> octane w/
>>>> "-ea -esa" and COMPILE_THRESHOLD={0,30}.
>>>>
>>>> Reviewed-by: vlivanov, ?
>>>> Contributed-by: john.r.rose at oracle.com
>>>>
>>>> Thanks!
>>>>
>>>> Best regards,
>>>> Vladimir Ivanov
>>>> _______________________________________________
>>>> mlvm-dev mailing list
>>>> mlvm-dev at openjdk.java.net
>>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>> _______________________________________________
>>> mlvm-dev mailing list
>>> mlvm-dev at openjdk.java.net
>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>
>> _______________________________________________
>> mlvm-dev mailing list
>> mlvm-dev at openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev



More information about the mlvm-dev mailing list