[foreign] RFR 8217414: Remove bounds check in BoundedPointer constructor

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Mon Jan 21 17:10:04 UTC 2019


On 21/01/2019 16:39, Jorn Vernee wrote:
> All good points, thanks.
>
> I moved the checkAlive() and checkInBounds() calls to addr() and have 
> equals/hashCode/isNull use effectiveAddress() which doesn't do the 
> checks. So, I'm now allowing dead pointers to be used in those 3 
> methods as well, since it seemed cleaner to either do all checks in 
> addr() or none of the checks in effectiveAddress(), instead of doing 
> just the bounds check in addr() and the liveliness check in 
> effectiveAddress(). Is that okay?
That looks like a good approach
>
> Updated webrev: 
> http://cr.openjdk.java.net/~jvernee/panama/webrevs/8217414/webrev.03/

Looks good - let's also update the javadoc for Pointer::addr? (e.g. to 
document exactly when addr() will throw)

Maurizio


>
> Jorn
>
> Maurizio Cimadamore schreef op 2019-01-21 17:12:
>> On 21/01/2019 15:54, Maurizio Cimadamore wrote:
>>> Also, addr() is also where the liveness check takes place, so that's 
>>> already how the code works.
>>
>> Also, there doesn't seem to be much point in restricting the passing
>> of a dead/out of bound pointer to a native function when the user can
>> simply workaround by calling addr() on that pointer and pass the
>> resulting long.
>>
>> I'm not saying that we should make the API bullet proof (with native
>> code I think that would be hard to achieve), but we should at least
>> try to make it hard for people to use the API in ways it is not
>> intended to.
>>
>> Maurizio


More information about the panama-dev mailing list