Author: tilman
Date: Sun Sep 21 14:17:49 2025
New Revision: 1928668

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

Modified:
   
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDMeshBasedShadingType.java
   
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDTriangleBasedShadingType.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDMeshBasedShadingType.java
==============================================================================
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDMeshBasedShadingType.java
     Sun Sep 21 14:17:44 2025        (r1928667)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDMeshBasedShadingType.java
     Sun Sep 21 14:17:49 2025        (r1928668)
@@ -206,10 +206,11 @@ abstract class PDMeshBasedShadingType ex
 
         try
         {
+            int bitsPerCoordinate = getBitsPerCoordinate();
             for (int i = pStart; i < controlPoints; i++)
             {
-                long x = input.readBits(getBitsPerCoordinate());
-                long y = input.readBits(getBitsPerCoordinate());
+                long x = input.readBits(bitsPerCoordinate);
+                long y = input.readBits(bitsPerCoordinate);
                 float px = interpolate(x, maxSrcCoord, rangeX.getMin(), 
rangeX.getMax());
                 float py = interpolate(y, maxSrcCoord, rangeY.getMin(), 
rangeY.getMax());
                 Point2D p = matrix.transformPoint(px, py);
@@ -220,7 +221,7 @@ abstract class PDMeshBasedShadingType ex
             {
                 for (int j = 0; j < numberOfColorComponents; j++)
                 {
-                    long c = input.readBits(getBitsPerComponent());
+                    long c = input.readBits(bitsPerCoordinate);
                     color[i][j] = interpolate(c, maxSrcColor, 
colRange[j].getMin(),
                             colRange[j].getMax());
                 }

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDTriangleBasedShadingType.java
==============================================================================
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDTriangleBasedShadingType.java
 Sun Sep 21 14:17:44 2025        (r1928667)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDTriangleBasedShadingType.java
 Sun Sep 21 14:17:49 2025        (r1928668)
@@ -89,7 +89,10 @@ abstract class PDTriangleBasedShadingTyp
         if (bitsPerCoordinate == -1)
         {
             bitsPerCoordinate = 
getCOSObject().getInt(COSName.BITS_PER_COORDINATE, -1);
-            LOG.debug("bitsPerCoordinate: " + (Math.pow(2, bitsPerCoordinate) 
- 1));
+            if (LOG.isDebugEnabled())
+            {
+                LOG.debug("bitsPerCoordinate: " + (Math.pow(2, 
bitsPerCoordinate) - 1));
+            }
         }
         return bitsPerCoordinate;
     }

Reply via email to