[foreign-memaccess] RFR 8234581: Cleanup use of exceptions in the memory access API

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Thu Nov 21 23:51:02 UTC 2019


I did another pass - here's the delta webrev:

http://cr.openjdk.java.net/~mcimadamore/panama/8234581_v2_delta/

and here's the new javadoc:

http://cr.openjdk.java.net/~mcimadamore/panama/8234581_v2_javadoc/jdk/incubator/foreign/package-summary.html

Thanks
Maurizio


On 21/11/2019 17:57, Paul Sandoz wrote:
>
>
>> On Nov 21, 2019, at 9:49 AM, Maurizio Cimadamore 
>> <maurizio.cimadamore at oracle.com 
>> <mailto:maurizio.cimadamore at oracle.com>> wrote:
>>
>>
>> On 21/11/2019 17:45, Paul Sandoz wrote:
>>> Good cleanup.
>> thanks
>>>
>>>
>>> You might be able to use Objects.checkFromIndexSize in 
>>> MemorySegmentImpl instead of your own checkBounds method (it’s 
>>> possible to customize the exception message if you use the internal 
>>> Preconditions.checkFromIndexSize).
>> That works on ints doesn't it? The implemented one is on longs. So, 
>> while maybe doable (e.g. splitting the check in two) doesn't seem 
>> that straightforward?
>
> Doh, I missed types! (We should add long accepting check* methods to 
> Objects as this API matures).
>
>
>>>
>>>
>>> I generally try to avoid the use of < etc because I find it makes 
>>> it harder to read the doc in source (I tend to read doc more in 
>>> source than in the generated HTML).
>>>
>>> * @throws IllegalArgumentException if the start index is < 0, or 
>>> if the step is = 0.
>>> ->
>>> * @throws IllegalArgumentException if {@code start < 0} or {@code 
>>> step == 0}.
>>>
>>>  174      * @throws IndexOutOfBoundsException if the new segment 
>>> bounds are illegal; this can happen because:
>>>  175      * <ul>
>>>  176      * <li>{@code offset} is negative or greater than {@code 
>>> byteSize()}</li>
>>>  177      * <li>{@code newSize} is negative or {@code newSize > 
>>> byteSize() - offset}</li>
>>>  178      * </ul>
>>> ->
>>>
>>> @throws IndexOutOfBoundsException if {@code offset < 0}, {@code 
>>> offset > byteSize()}, {@code newSize < 0}, or  {@code newSize > 
>>> byteSize() - offset}
>>>
>>> (Since we are using IndexOutOfBoundsException we can be a little 
>>> more terse.)
>>>
>>> If you are ok with that I am happy to make such a change after your 
>>> patch has settled down and pushed.
>>
>> I can do that too - I plan to do another pass anyway to remove the 
>> 'throws' clauses which mention unchecked exceptions
>>
>
> Ok.
>
> Thanks,
> Paul.
>


More information about the panama-dev mailing list