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

Jorn Vernee jbvernee at xs4all.nl
Mon Feb 18 11:10:06 UTC 2019


Looks good!

Cheers,
Jorn

Sundararajan Athijegannathan schreef op 2019-02-18 11:23:
> Throwing NPE from asFunction is direct (& it documents the fact that
> null callback cannot be converted asFunction ). It does not depend on
> some other side effect (of funcClass being null)
> 
> Updated to return Callback.ofNull in References.OfFunction and
> DirectSignatureShuffler. (also looked other places of Pointer.ofNull
> if those are for Callbacks - didn't find any other).
> 
> Webrev: https://cr.openjdk.java.net/~sundar/8219119/webrev.02/
> 
> -Sundar
> 
> On 18/02/19, 3:38 PM, Jorn Vernee wrote:
>> 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