[OpenJDK 2D-Dev] RFR 8148886: SEGV in sun.java2d.marlin.Renderer._endRendering

Jim Graham james.graham at oracle.com
Fri Feb 5 01:20:03 UTC 2016

Ah, at least one error spotted here after my initial review...

The abox values could be changed by the code in lines 157-160 so you 
can't cache their values until after that.

Also, as you pointed out in another thread in the grdev group, we should 
probably do the same treatment for the TileState in case we have 
reentrance for the AAShapePipe code...


On 2/4/2016 5:10 PM, Jim Graham wrote:
> Hi Laurent,
> In AAShapePipe you load the values from abox[] into variables named
> xywh, but these are not xywh values, they are min/max values.  We
> typically use any of the following naming conventions for these types of
> values:
> - x0, y0, x1, y1
> - x1, y1, x2, y2
> - minX, minY, maxX, maxY
> Other than that naming inconsistency the changes look great...
>              ...jim
> On 2/4/2016 2:21 PM, Laurent Bourgès wrote:
>> Please review the webrev fixing SEGFAULT (P2) in the Marlin Renderer
>> when using thread-local storage with custom Paint (reentrance):
>> bug: https://bugs.openjdk.java.net/browse/JDK-8148886
>> webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin-8148886.0/
>> Changes:
>> - detect reentrance in MarlinRenderingEngine using flag
>> RendererContext.usedTL (true/false) and use another context from CLQ
>> - added few more details in array checks (XXXArrayCache)
>> - fixed AAShapePipe to support reentrancy: added defensive copy of int[]
>> abox in local variables + TODO to discuss
>> - updated Version to
>> - fixed copyright headers
>> Best regards,
>> Laurent

More information about the 2d-dev mailing list