Author: tilman
Date: Mon Sep 29 08:27:52 2025
New Revision: 1928832

Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov; closes #267

Modified:
   
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java
    Mon Sep 29 08:27:49 2025        (r1928831)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java
    Mon Sep 29 08:27:52 2025        (r1928832)
@@ -656,12 +656,13 @@ abstract class PDAbstractContentStream i
      */
     public void setStrokingColor(PDColor color) throws IOException
     {
+        PDColorSpace colorSpace = color.getColorSpace();
         if (strokingColorSpaceStack.isEmpty() ||
-            strokingColorSpaceStack.peek() != color.getColorSpace())
+            strokingColorSpaceStack.peek() != colorSpace)
         {
-            writeOperand(getName(color.getColorSpace()));
+            writeOperand(getName(colorSpace));
             writeOperator(OperatorName.STROKING_COLORSPACE);
-            setStrokingColorSpaceStack(color.getColorSpace());
+            setStrokingColorSpaceStack(colorSpace);
         }
 
         for (float value : color.getComponents())
@@ -669,15 +670,15 @@ abstract class PDAbstractContentStream i
             writeOperand(value);
         }
 
-        if (color.getColorSpace() instanceof PDPattern)
+        if (colorSpace instanceof PDPattern)
         {
             writeOperand(color.getPatternName());
         }
 
-        if (color.getColorSpace() instanceof PDPattern ||
-            color.getColorSpace() instanceof PDSeparation ||
-            color.getColorSpace() instanceof PDDeviceN ||
-            color.getColorSpace() instanceof PDICCBased)
+        if (colorSpace instanceof PDPattern ||
+            colorSpace instanceof PDSeparation ||
+            colorSpace instanceof PDDeviceN ||
+            colorSpace instanceof PDICCBased)
         {
             writeOperator(OperatorName.STROKING_COLOR_N);
         }
@@ -775,12 +776,13 @@ abstract class PDAbstractContentStream i
      */
     public void setNonStrokingColor(PDColor color) throws IOException
     {
+        PDColorSpace colorSpace = color.getColorSpace();
         if (nonStrokingColorSpaceStack.isEmpty() ||
-            nonStrokingColorSpaceStack.peek() != color.getColorSpace())
+            nonStrokingColorSpaceStack.peek() != colorSpace)
         {
-            writeOperand(getName(color.getColorSpace()));
+            writeOperand(getName(colorSpace));
             writeOperator(OperatorName.NON_STROKING_COLORSPACE);
-            setNonStrokingColorSpaceStack(color.getColorSpace());
+            setNonStrokingColorSpaceStack(colorSpace);
         }
 
         for (float value : color.getComponents())
@@ -788,15 +790,15 @@ abstract class PDAbstractContentStream i
             writeOperand(value);
         }
 
-        if (color.getColorSpace() instanceof PDPattern)
+        if (colorSpace instanceof PDPattern)
         {
             writeOperand(color.getPatternName());
         }
 
-        if (color.getColorSpace() instanceof PDPattern ||
-            color.getColorSpace() instanceof PDSeparation ||
-            color.getColorSpace() instanceof PDDeviceN ||
-            color.getColorSpace() instanceof PDICCBased)
+        if (colorSpace instanceof PDPattern ||
+            colorSpace instanceof PDSeparation ||
+            colorSpace instanceof PDDeviceN ||
+            colorSpace instanceof PDICCBased)
         {
             writeOperator(OperatorName.NON_STROKING_COLOR_N);
         }

Reply via email to