Skip to content

Commit 915cb1d

Browse files
committed
PDFBOX-5660: optimize, as suggested by Valery Bokov, closes #367
git-svn-id: https://svn.apache.org/repos/asf/pdfbox/branches/3.0@1930427 13f79535-47bb-0310-9956-ffa450edef68
1 parent d3c5584 commit 915cb1d

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
import org.apache.pdfbox.cos.COSBase;
7070
import org.apache.pdfbox.cos.COSDictionary;
7171
import org.apache.pdfbox.cos.COSName;
72+
import org.apache.pdfbox.cos.COSStream;
7273
import org.apache.pdfbox.pdmodel.PDResources;
7374
import org.apache.pdfbox.pdmodel.common.PDRectangle;
7475
import org.apache.pdfbox.pdmodel.common.function.PDFunction;
@@ -2036,14 +2037,15 @@ Rectangle2D getBounds()
20362037

20372038
private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
20382039
{
2039-
if (groupsDone.contains(group.getCOSObject()))
2040+
COSStream groupCOSStream = group.getCOSObject();
2041+
if (groupsDone.contains(groupCOSStream))
20402042
{
20412043
// The group is being processed. Avoid endless recursion.
20422044
return false;
20432045
}
2044-
groupsDone.add(group.getCOSObject());
2046+
groupsDone.add(groupCOSStream);
20452047

2046-
Boolean val = blendModeMap.get(group.getCOSObject());
2048+
Boolean val = blendModeMap.get(groupCOSStream);
20472049
if (val != null)
20482050
{
20492051
return val;
@@ -2052,7 +2054,7 @@ private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
20522054
PDResources resources = group.getResources();
20532055
if (resources == null)
20542056
{
2055-
blendModeMap.put(group.getCOSObject(), false);
2057+
blendModeMap.put(groupCOSStream, false);
20562058
return false;
20572059
}
20582060
for (COSName name : resources.getExtGStateNames())
@@ -2065,7 +2067,7 @@ private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
20652067
BlendMode blendMode = extGState.getBlendMode();
20662068
if (blendMode != BlendMode.NORMAL)
20672069
{
2068-
blendModeMap.put(group.getCOSObject(), true);
2070+
blendModeMap.put(groupCOSStream, true);
20692071
return true;
20702072
}
20712073
}
@@ -2085,12 +2087,12 @@ private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
20852087
if (xObject instanceof PDTransparencyGroup &&
20862088
hasBlendMode((PDTransparencyGroup)xObject, groupsDone))
20872089
{
2088-
blendModeMap.put(group.getCOSObject(), true);
2090+
blendModeMap.put(groupCOSStream, true);
20892091
return true;
20902092
}
20912093
}
20922094

2093-
blendModeMap.put(group.getCOSObject(), false);
2095+
blendModeMap.put(groupCOSStream, false);
20942096
return false;
20952097
}
20962098

0 commit comments

Comments
 (0)