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 2025/12/10 12:02:18 UTC
svn commit: r1930429 - pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering
Author: tilman
Date: Wed Dec 10 12:02:17 2025
New Revision: 1930429
Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov, closes #367
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
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Wed Dec 10 12:02:12 2025 (r1930428)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Wed Dec 10 12:02:17 2025 (r1930429)
@@ -69,6 +69,7 @@ import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.cos.COSStream;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.common.function.PDFunction;
@@ -2035,14 +2036,15 @@ public class PageDrawer extends PDFGraph
private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
{
- if (groupsDone.contains(group.getCOSObject()))
+ COSStream groupCOSStream = group.getCOSObject();
+ if (groupsDone.contains(groupCOSStream))
{
// The group is being processed. Avoid endless recursion.
return false;
}
- groupsDone.add(group.getCOSObject());
+ groupsDone.add(groupCOSStream);
- Boolean val = blendModeMap.get(group.getCOSObject());
+ Boolean val = blendModeMap.get(groupCOSStream);
if (val != null)
{
return val;
@@ -2051,7 +2053,7 @@ public class PageDrawer extends PDFGraph
PDResources resources = group.getResources();
if (resources == null)
{
- blendModeMap.put(group.getCOSObject(), false);
+ blendModeMap.put(groupCOSStream, false);
return false;
}
for (COSName name : resources.getExtGStateNames())
@@ -2064,7 +2066,7 @@ public class PageDrawer extends PDFGraph
BlendMode blendMode = extGState.getBlendMode();
if (blendMode != BlendMode.NORMAL)
{
- blendModeMap.put(group.getCOSObject(), true);
+ blendModeMap.put(groupCOSStream, true);
return true;
}
}
@@ -2084,12 +2086,12 @@ public class PageDrawer extends PDFGraph
if (xObject instanceof PDTransparencyGroup &&
hasBlendMode((PDTransparencyGroup)xObject, groupsDone))
{
- blendModeMap.put(group.getCOSObject(), true);
+ blendModeMap.put(groupCOSStream, true);
return true;
}
}
- blendModeMap.put(group.getCOSObject(), false);
+ blendModeMap.put(groupCOSStream, false);
return false;
}