[foreign] RFR 8219119: Need API to create a null Callback

Jorn Vernee jbvernee at xs4all.nl
Mon Feb 18 10:23:20 UTC 2019


> It looks like this happens by calling
> 
>     LibrariesHelper.getCallbackImplClass(funcIntfClass); ->
> Util.isCallback(c) -> c.isAnnotationPresent(NativeCallback.class);

Never mind, that is for the carrier, not the entry point.

Jorn

Jorn Vernee schreef op 2019-02-18 11:08:
> I see there is a test for asFunction() throwing an NPE. I think the
> NPE is being triggered from somewhere else already. It looks like this
> happens by calling
> 
>     LibrariesHelper.getCallbackImplClass(funcIntfClass); ->
> Util.isCallback(c) -> c.isAnnotationPresent(NativeCallback.class);
> 
> From CallbackImpl::asFunction. So, maybe the overridden impl is not
> needed? It might be simpler to just add an isNull() check to the
> regular implemenation.
> 
> Jorn
> 
> Jorn Vernee schreef op 2019-02-18 10:30:
>> Hi Sundar,
>> 
>> You've changed the implementation of theNullCallback to throw an
>> exception in an overridden asFunction(), but the boxing code in
>> References.OfFunction and DirectSignatureShuffler (others?) would
>> still have to be updated to return theNullCallback explicitly when the
>> address is 0.
>> 
>> Jorn
>> 
>> Sundararajan Athijegannathan schreef op 2019-02-18 04:52:
>>> Updated: https://cr.openjdk.java.net/~sundar/8219119/webrev.01/
>>> 
>>> Thanks
>>> -Sundar
>>> 
>>> On 15/02/19, 10:33 PM, Maurizio Cimadamore wrote:
>>>> Looks good - but I think it can be simplified further - there's no 
>>>> need to accept a carrier type in Callback::ofNull.
>>>> 
>>>> You can just create a CallbackImpl which throws NPE whenever you try 
>>>> to call 'asFunction'.
>>>> 
>>>> Maurizio
>>>> 
>>>> On 15/02/2019 17:00, Sundararajan Athijegannathan wrote:
>>>>> Please review.
>>>>> 
>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8219119
>>>>> Webrev: https://cr.openjdk.java.net/~sundar/8219119/webrev.00/
>>>>> 
>>>>> Thanks,
>>>>> -Sundar


More information about the panama-dev mailing list