On Thu, 3 Nov 2022 14:37:55 GMT, Jim Laskey <jlas...@openjdk.org> wrote:

>> src/java.base/share/classes/java/lang/template/ProcessorLinkage.java line 60:
>> 
>>> 58:      * @throws NullPointerException if any of the arguments are null
>>> 59:      */
>>> 60:     MethodHandle linkage(List<String> fragments, MethodType type);
>> 
>> I suggest changing the protocol here to be able to take all bootstrap 
>> arguments into account, and return a `CallSite` instead. That will allow a 
>> `ProcessorLinkage` to take the lookup and name into account as well, and 
>> allows returning e.g. a `MutableCallSite` as well.
>> 
>> Maybe this can still be changed later as well though, since the interface is 
>> sealed.
>
> Yes - this will all go away during preview.

I disagree with Jorn,
- CallSite.dynamicInvoker() can be used to see a `MutableCallSite` as a 
`MethodHandle` so returning a `MethodHandle` is as powerful as returning a 
`CallSite`.
- Having a `ProcessorLinkage` that takes a Lookup as parameter is a security 
risk because it means that a processor have full access to the user code that 
calls the processor at runtime.

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

PR: https://git.openjdk.org/jdk/pull/10889

Reply via email to