RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Fri May 13 14:01:24 UTC 2016
Good point, Remi. I agree that it's redundant.
Best regards,
Vladimir Ivanov
On 5/13/16 4:51 PM, Remi Forax wrote:
> Also instead of
> MethodVisitor mv = cw.visitMethod(ACC_PRIVATE | ACC_STATIC, "invoke_V",
> "(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)Ljava/lang/Object;",
> null, new String[] { "java/lang/Throwable" });
>
> because the code is never read by a java compiler (as javac), you don't need to specify the exception
> (checked exceptions are a Java the language artifact)
> MethodVisitor mv = cw.visitMethod(ACC_PRIVATE | ACC_STATIC, "invoke_V",
> "(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)Ljava/lang/Object;",
> null, null);
>
> my 2 cents,
> Rémi
>
> ----- Mail original -----
>> De: "Vladimir Ivanov" <vladimir.x.ivanov at oracle.com>
>> À: "shilpi rastogi" <shilpi.rastogi at oracle.com>
>> Cc: core-libs-dev at openjdk.java.net
>> Envoyé: Vendredi 13 Mai 2016 15:41:33
>> Objet: Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()
>>
>> MethodHandle vamh = prepareForInvoker(MH_checkCallerClass);
>> Object ok = bccInvoker.invokeExact(vamh, new Object[]{hostClass, bcc});
>> + assert Boolean.TRUE.equals(ok) : ok;
>>
>> What I meant is to convert the whole test (inside try-catch block) into
>> an assert.
>>
>>
>> + UNSAFE.ensureClassInitialized(bcc);
>>
>> Do people see any reason to force invoker class init? I'd prefer to see
>> it goes away.
>>
>> Also, as a second thought, generateInvokerTemplate() looks clearer than
>> invokerTemplateGenerator().
>>
>> Something like the following:
>> http://cr.openjdk.java.net/~vlivanov/8149574/webrev.00/
>>
>> Additional cleanup: checkCallerClass() should return injected invoker
>> class when invoked using a method handle, so no need in 2nd argument.
>>
>> Best regards,
>> Vladimir Ivanov
>>
>> On 5/13/16 11:56 AM, shilpi.rastogi at oracle.com wrote:
>>> Thanks Paul!
>>>
>>> Please review http://cr.openjdk.java.net/~srastogi/8149574/webrev10.0/
>>>
>>> Regards,
>>> Shilpi
>>>
>>> On 5/13/2016 2:09 PM, Paul Sandoz wrote:
>>>> assert Boolean.TRUE.equals(ok) : ok;
>>>
>>
More information about the core-libs-dev
mailing list