Skip to content

Commit 5472f66

Browse files
committed
PDFBOX-5660: optimize, as suggested by Valery Bokov, closes #367
git-svn-id: https://svn.apache.org/repos/asf/pdfbox/branches/2.0@1930428 13f79535-47bb-0310-9956-ffa450edef68
1 parent 49aead8 commit 5472f66

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;
@@ -2116,14 +2117,15 @@ Rectangle2D getBounds()
21162117

21172118
private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
21182119
{
2119-
if (groupsDone.contains(group.getCOSObject()))
2120+
COSStream groupCOSStream = group.getCOSObject();
2121+
if (groupsDone.contains(groupCOSStream))
21202122
{
21212123
// The group is being processed. Avoid endless recursion.
21222124
return false;
21232125
}
2124-
groupsDone.add(group.getCOSObject());
2126+
groupsDone.add(groupCOSStream);
21252127

2126-
Boolean val = blendModeMap.get(group.getCOSObject());
2128+
Boolean val = blendModeMap.get(groupCOSStream);
21272129
if (val != null)
21282130
{
21292131
return val;
@@ -2132,7 +2134,7 @@ private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
21322134
PDResources resources = group.getResources();
21332135
if (resources == null)
21342136
{
2135-
blendModeMap.put(group.getCOSObject(), false);
2137+
blendModeMap.put(groupCOSStream, false);
21362138
return false;
21372139
}
21382140
for (COSName name : resources.getExtGStateNames())
@@ -2145,7 +2147,7 @@ private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
21452147
BlendMode blendMode = extGState.getBlendMode();
21462148
if (blendMode != BlendMode.NORMAL)
21472149
{
2148-
blendModeMap.put(group.getCOSObject(), true);
2150+
blendModeMap.put(groupCOSStream, true);
21492151
return true;
21502152
}
21512153
}
@@ -2165,12 +2167,12 @@ private boolean hasBlendMode(PDTransparencyGroup group, Set<COSBase> groupsDone)
21652167
if (xObject instanceof PDTransparencyGroup &&
21662168
hasBlendMode((PDTransparencyGroup)xObject, groupsDone))
21672169
{
2168-
blendModeMap.put(group.getCOSObject(), true);
2170+
blendModeMap.put(groupCOSStream, true);
21692171
return true;
21702172
}
21712173
}
21722174

2173-
blendModeMap.put(group.getCOSObject(), false);
2175+
blendModeMap.put(groupCOSStream, false);
21742176
return false;
21752177
}
21762178

0 commit comments

Comments
 (0)