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

Jorn Vernee jbvernee at xs4all.nl
Mon Jan 21 18:00:51 UTC 2019


Updated an pushed. Thanks for the reviews!

Jorn

Maurizio Cimadamore schreef op 2019-01-21 18:10:
> 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