[OpenJDK 2D-Dev] RFR: 7018932 : Drawing very large coordinates with a dashed Stroke can cause Java to hang [v4]
Sergey Bylokhov
serb at openjdk.java.net
Mon Jan 11 06:13:58 UTC 2021
On Sun, 10 Jan 2021 21:00:17 GMT, Laurent Bourgès <lbourges at openjdk.org> wrote:
>> This is my fix proposal to this bug:
>> - added new method strokeTo(... Region clip ...) in the abstract RenderingEngine class
>> - fixed all RenderingEngine implementations in java.desktop module
>> - MarlinRenderingEngine now uses the clip region to roughly & quickly clip the given shape in strokeTo(clip)
>> - LoopPipe.getStrokeSpans() uses the new strokeTo(clip) method to get good performance with huge dashed shapes.
>>
>> I wrote a new test class to validate the bug fix.
>
> Laurent Bourgès has updated the pull request incrementally with one additional commit since the last revision:
>
> Fixed RenderingEngine.strokeTo(clip) to call by default former method.
> Fixed CurveClipSplitter (float) to use double-precision for higher
> accuracy.
> Improved StrokedLineTest to use only bufferedimage rendering.
src/java.desktop/share/classes/sun/java2d/marlin/TransformingPathConsumer2D.java line 902:
> 900:
> 901: // clip rectangle (ymin, ymax, xmin, xmax) including padding:
> 902: final double[] clipRectPad = new double[4];
It does not seem related to this fix? Or an updated test uncovered this?
test/jdk/sun/java2d/marlin/StrokedLinePerf.java line 37:
> 35: * @bug 7018932
> 36: * @summary fix LoopPipe.getStrokedSpans() performance (clipping enabled by Marlin renderer)
> 37: * @run main DrawingTest7018932
typo DrawingTest7018932 -> StrokedLinePerf
-------------
PR: https://git.openjdk.java.net/jdk/pull/2013
More information about the 2d-dev
mailing list