Skip to content

Commit 3c9df9b

Browse files
committed
PDFBOX-5660: optimize, as suggested by Valery Bokov, closes #367
git-svn-id: https://svn.apache.org/repos/asf/pdfbox/trunk@1930429 13f79535-47bb-0310-9956-ffa450edef68
1 parent 9266108 commit 3c9df9b

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;
@@ -2035,14 +2036,15 @@ Rectangle2D getBounds()
20352036

20362037
private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
20372038
{
2038-
if (groupsDone.contains(group.getCOSObject()))
2039+
COSStream groupCOSStream = group.getCOSObject();
2040+
if (groupsDone.contains(groupCOSStream))
20392041
{
20402042
// The group is being processed. Avoid endless recursion.
20412043
return false;
20422044
}
2043-
groupsDone.add(group.getCOSObject());
2045+
groupsDone.add(groupCOSStream);
20442046

2045-
Boolean val = blendModeMap.get(group.getCOSObject());
2047+
Boolean val = blendModeMap.get(groupCOSStream);
20462048
if (val != null)
20472049
{
20482050
return val;
@@ -2051,7 +2053,7 @@ private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
20512053
PDResources resources = group.getResources();
20522054
if (resources == null)
20532055
{
2054-
blendModeMap.put(group.getCOSObject(), false);
2056+
blendModeMap.put(groupCOSStream, false);
20552057
return false;
20562058
}
20572059
for (COSName name : resources.getExtGStateNames())
@@ -2064,7 +2066,7 @@ private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
20642066
BlendMode blendMode = extGState.getBlendMode();
20652067
if (blendMode != BlendMode.NORMAL)
20662068
{
2067-
blendModeMap.put(group.getCOSObject(), true);
2069+
blendModeMap.put(groupCOSStream, true);
20682070
return true;
20692071
}
20702072
}
@@ -2084,12 +2086,12 @@ private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
20842086
if (xObject instanceof PDTransparencyGroup &&
20852087
hasBlendMode((PDTransparencyGroup)xObject, groupsDone))
20862088
{
2087-
blendModeMap.put(group.getCOSObject(), true);
2089+
blendModeMap.put(groupCOSStream, true);
20882090
return true;
20892091
}
20902092
}
20912093

2092-
blendModeMap.put(group.getCOSObject(), false);
2094+
blendModeMap.put(groupCOSStream, false);
20932095
return false;
20942096
}
20952097

0 commit comments

Comments
 (0)