[OpenJDK Rasterizer] Fix Overflow in Marlin ArrayCache

Jim Graham james.graham at oracle.com
Tue Dec 1 23:04:10 UTC 2015


Hi Laurent,

I submitted the following bug: 
https://bugs.openjdk.java.net/browse/JDK-8144445

The change looks fine.  Are the long modifiers (12L, 1L, etc) really 
needed on the shift parameters given that the first operand (needSize) 
is already a long?

  202             size = ((needSize >> 12L) + 1L) << 12L;

			...jim

On 11/27/15 3:42 AM, Laurent Bourgès wrote:
> Hi,
>
> Here is a new webrev that fix the Renderer usage of getNewLargeSize() as
> the overflow check fails due to integer maths:
> http://cr.openjdk.java.net/~lbourges/marlin/marlin-s6.1/
>
> Patched line:
>
>               final long edgeNewSize = ArrayCache.getNewLargeSize(_edges.length,
> - edgePtr + _SIZEOF_EDGE_BYTES);
> + ((long)edgePtr) + _SIZEOF_EDGE_BYTES);
>
>
> The CrashTest passes again after the fix (automated tests are very cool) !
>
> Laurent
>
> 2015-11-27 12:18 GMT+01:00 Laurent Bourgès <bourges.laurent at gmail.com
> <mailto:bourges.laurent at gmail.com>>:
>
>     Hi Jim,
>
>     Here is a simple fix on potential overflow in
>     ArrayCache.getNewLargeSize() discussed during Marlin integration:
>     http://cr.openjdk.java.net/~lbourges/marlin/marlin-s6.0/
>
>     I added the ArrayCacheSizeTest class which now passes in jtreg.
>
>     Could you create a bug, I am not sure what I should fill in the form ?
>
>     Laurent
>
>
>
>
> --
> --
> Laurent Bourgès


More information about the graphics-rasterizer-dev mailing list