You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2021/04/18 11:05:35 UTC
svn commit: r1888891 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Author: tilman
Date: Sun Apr 18 11:05:35 2021
New Revision: 1888891
URL: http://svn.apache.org/viewvc?rev=1888891&view=rev
Log:
PDFBOX-5168: refactor
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1888891&r1=1888890&r2=1888891&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Sun Apr 18 11:05:35 2021
@@ -689,22 +689,6 @@ public class PageDrawer extends PDFGraph
dashArray = getDashArray(dashPattern);
phaseStart = transformWidth(phaseStart);
- // avoid also infinite and NaN values (PDFBOX-3360)
- if (dashArray.length == 0 || Float.isInfinite(phaseStart) || Float.isNaN(phaseStart))
- {
- dashArray = null;
- }
- else
- {
- for (int i = 0; i < dashArray.length; ++i)
- {
- if (Float.isInfinite(dashArray[i]) || Float.isNaN(dashArray[i]))
- {
- dashArray = null;
- break;
- }
- }
- }
int lineCap = Math.min(2, Math.max(0, state.getLineCap())); // legal values 0..2
int lineJoin = Math.min(2, Math.max(0, state.getLineJoin()));
float miterLimit = state.getMiterLimit();
@@ -741,6 +725,19 @@ public class PageDrawer extends PDFGraph
private float[] getDashArray(PDLineDashPattern dashPattern)
{
float[] dashArray = dashPattern.getDashArray();
+ int phase = dashPattern.getPhase();
+ // avoid empty, infinite and NaN values (PDFBOX-3360)
+ if (dashArray.length == 0 || Float.isInfinite(phase) || Float.isNaN(phase))
+ {
+ return null;
+ }
+ for (int i = 0; i < dashArray.length; ++i)
+ {
+ if (Float.isInfinite(dashArray[i]) || Float.isNaN(dashArray[i]))
+ {
+ return null;
+ }
+ }
if (JAVA_VERSION < 10)
{
float scalingFactorX = new Matrix(xform).getScalingFactorX();