Pointer ofNull method naming

Ty Young youngty1997 at gmail.com
Wed Nov 13 22:15:59 UTC 2019


On 11/13/19 3:19 PM, Maurizio Cimadamore wrote:
>
> On 13/11/2019 12:43, Ty Young wrote:
>>
>> On 11/13/19 2:28 AM, Maurizio Cimadamore wrote:
>>> I'm ok with making the documentation more precise (I'm not sure I 
>>> like ofTyped()). Can you please clarify a bit what you mean by 
>>> 'filler' ? Like passing null ptr to a struct setter?
>>
>>
>> Not struct types but more primitive native types like Pointer<Byte> 
>> or Pointer<Integer>.
>>
>>
>> As an example, you have a function like this:
>>
>>
>> int foo(Pointer<Pointer<Byte>> array, Pointer<Integer> size);
>>
>>
>> But what you're actually interested in is at index 0 of the array, so 
>> "size" isn't needed and allocating a new Pointer would be a waste.
>
> Not sure I follow - if you are interested in index 0, doesn't that 
> mean that the array would need to have at least _one_ element (e.g. 
> size >= 1) ?


It does. It's just that the data that is actually desired is located at 
index 0, so doing:


array.get().get()


returns index 0 anyway.


For context, the function in question returns a Pointer to an array in 
the format:


Index 0 = number of items

index 4 * number of item = bitmask of a given item


However, one might only be interested in index 0 or in this case, the 
number of items, so allocating another Pointer just to make the function 
call seems like a waste.


It seems like *some* functions check whether a given Pointer is null or 
not but not all do such as the functions I'm working with. It just fills 
the array Pointer regardless.


>
> Maurizio
>
>
>>
>>
>>>
>>> (p.s. in these cases we have been also discussing bringing back 
>>> special treatment for Java null, so that null is re-interpreted to 
>>> Pointer.ofNull)
>>
>>
>> I haven't gone too deep down the rabbit hole, but I see 
>> "LayoutTypeImpl.nullType" in BoundedPointer. Isn't that the null 
>> interpretation for a Pointer?
>>
>>
>>
>>>
>>> Maurizio
>>>


More information about the panama-dev mailing list