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;
     }
 

Reply via email to