At the same time, if you have an overflow here, it means that you are
able to create an int array (a int[]) with a size which is greater than
2G (minus the offset).
Rémi
On 12/11/2014 08:23 PM, joe darcy wrote:
Hi Staffan,
I haven't examined the code for possible integer overflow cases, but
it would be fundamentally safer if the values were promoted to long
*before* the arithmetic rather than after. In other words, instead of
(long)(Unsafe.ARRAY_BYTE_BASE_OFFSET + off) // Overflow
theoretically possible
use
(long)Unsafe.ARRAY_BYTE_BASE_OFFSET + off // No overflow worries
with int inputs
-Joe
On 12/11/2014 11:19 AM, Staffan Friberg wrote:
Hi,
Here is a small fix that avoids calling deprecated sun.misc.Unsafe
methods, which allows the @SuppressWarnings to be removed.
Bug: https://bugs.openjdk.java.net/browse/JDK-8067289
Webrev: http://cr.openjdk.java.net/~sfriberg/JDK-8067289/webrev.00
Regards,
Staffan