[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