[OpenJDK 2D-Dev] RFR: 7018932 : Drawing very large coordinates with a dashed Stroke can cause Java to hang [v7]
Phil Race
prr at openjdk.java.net
Tue Jan 12 18:47:57 UTC 2021
On Mon, 11 Jan 2021 09:00:27 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 two additional commits since the last revision:
>
> - fixed copyright year
> - removed invalid jtreg test
src/java.desktop/share/classes/sun/java2d/pipe/SpanShapeRenderer.java line 45:
> 43: */
> 44: public abstract class SpanShapeRenderer implements ShapeDrawPipe {
> 45:
I suppose this is just clean up when you happened to notice it wasn't used/
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/othervm/timeout=10 -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine StrokedLinePerf
I hope 10 seconds is enough for a stable test .. not connecting to the windowing system so maybe.
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];
are all the changes to double needed for this ? Or just preparation for removing the float pipeline ?
-------------
PR: https://git.openjdk.java.net/jdk/pull/2013
More information about the 2d-dev
mailing list