You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2024/02/13 10:05:12 UTC

svn commit: r1915765 - in /pdfbox/branches/3.0/pdfbox/src: main/java/org/apache/pdfbox/contentstream/operator/text/ main/java/org/apache/pdfbox/cos/ main/java/org/apache/pdfbox/pdmodel/graphics/color/ test/java/org/apache/pdfbox/cos/ test/java/org/apac...

Author: tilman
Date: Tue Feb 13 10:05:12 2024
New Revision: 1915765

URL: http://svn.apache.org/viewvc?rev=1915765&view=rev
Log:
PDFBOX-5660: introduce constants COSFLOAT.ZERO and COSFloat.ONE to avoid creating unnecessary instances, by Axel Howind

Modified:
    pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/text/NextLine.java
    pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java
    pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java
    pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
    pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDGamma.java
    pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
    pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDTristimulus.java
    pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSArray.java
    pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/PDLineDashPatternTest.java
    pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/util/MatrixTest.java

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/text/NextLine.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/text/NextLine.java?rev=1915765&r1=1915764&r2=1915765&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/text/NextLine.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/text/NextLine.java Tue Feb 13 10:05:12 2024
@@ -44,7 +44,7 @@ public class NextLine extends OperatorPr
     {
         //move to start of next text line
         List<COSBase> args = new ArrayList<>(2);
-        args.add(new COSFloat(0f));
+        args.add(COSFloat.ZERO);
         PDFStreamEngine context = getContext();
         // this must be -leading instead of just leading as written in the
         // specification (p.369) the acrobat reader seems to implement it the same way

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java?rev=1915765&r1=1915764&r2=1915765&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java Tue Feb 13 10:05:12 2024
@@ -32,6 +32,9 @@ public class COSFloat extends COSNumber
     private final float value;
     private String valueAsString;
 
+    public static final COSFloat ZERO = new COSFloat(0f, "0.0");
+    public static final COSFloat ONE = new COSFloat(1f, "1.0");
+
     /**
      * Constructor.
      *
@@ -43,6 +46,18 @@ public class COSFloat extends COSNumber
     }
 
     /**
+     * An internal constructor to avoid formatting for the predefined constants.
+     *
+     * @param aFloat
+     * @param valueString
+     */
+    private COSFloat(float aFloat, String valueString)
+    {
+        value = aFloat;
+        valueAsString = valueString;
+    }
+
+    /**
      * Constructor.
      *
      * @param aFloat The primitive float object that this object wraps.

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java?rev=1915765&r1=1915764&r2=1915765&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java Tue Feb 13 10:05:12 2024
@@ -118,9 +118,9 @@ public abstract class PDCIEDictionaryBas
         if (wp == null)
         {
             wp = new COSArray();
-            wp.add(new COSFloat(1.0f));
-            wp.add(new COSFloat(1.0f));
-            wp.add(new COSFloat(1.0f));
+            wp.add(COSFloat.ONE);
+            wp.add(COSFloat.ONE);
+            wp.add(COSFloat.ONE);
         }
         return new PDTristimulus(wp);
     }
@@ -138,9 +138,9 @@ public abstract class PDCIEDictionaryBas
         if (bp == null)
         {
             bp = new COSArray();
-            bp.add(new COSFloat(0.0f));
-            bp.add(new COSFloat(0.0f));
-            bp.add(new COSFloat(0.0f));
+            bp.add(COSFloat.ZERO);
+            bp.add(COSFloat.ZERO);
+            bp.add(COSFloat.ZERO);
         }
         return new PDTristimulus(bp);
     }

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java?rev=1915765&r1=1915764&r2=1915765&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java Tue Feb 13 10:05:12 2024
@@ -124,9 +124,9 @@ public class PDCalRGB extends PDCIEDicti
         if (gammaArray == null)
         {
             gammaArray = new COSArray();
-            gammaArray.add(new COSFloat(1.0f));
-            gammaArray.add(new COSFloat(1.0f));
-            gammaArray.add(new COSFloat(1.0f));
+            gammaArray.add(COSFloat.ONE);
+            gammaArray.add(COSFloat.ONE);
+            gammaArray.add(COSFloat.ONE);
             dictionary.setItem(COSName.GAMMA, gammaArray);
         }
         return new PDGamma(gammaArray);

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDGamma.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDGamma.java?rev=1915765&r1=1915764&r2=1915765&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDGamma.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDGamma.java Tue Feb 13 10:05:12 2024
@@ -39,9 +39,9 @@ public final class PDGamma implements CO
     public PDGamma()
     {
         values = new COSArray();
-        values.add(new COSFloat(0.0f));
-        values.add(new COSFloat(0.0f));
-        values.add(new COSFloat(0.0f));
+        values.add(COSFloat.ZERO);
+        values.add(COSFloat.ZERO);
+        values.add(COSFloat.ZERO);
     }
 
     /**

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java?rev=1915765&r1=1915764&r2=1915765&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java Tue Feb 13 10:05:12 2024
@@ -518,8 +518,8 @@ public final class PDICCBased extends PD
         // extend range array with default values if needed
         while (rangeArray.size() < (n + 1) * 2)
         {
-            rangeArray.add(new COSFloat(0));
-            rangeArray.add(new COSFloat(1));
+            rangeArray.add(COSFloat.ZERO);
+            rangeArray.add(COSFloat.ONE);
         }
         rangeArray.set(n*2, new COSFloat(range.getMin()));
         rangeArray.set(n*2+1, new COSFloat(range.getMax()));

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDTristimulus.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDTristimulus.java?rev=1915765&r1=1915764&r2=1915765&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDTristimulus.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDTristimulus.java Tue Feb 13 10:05:12 2024
@@ -38,9 +38,9 @@ public final class PDTristimulus impleme
     public PDTristimulus()
     {
         values = new COSArray();
-        values.add(new COSFloat(0.0f));
-        values.add(new COSFloat(0.0f));
-        values.add(new COSFloat(0.0f));
+        values.add(COSFloat.ZERO);
+        values.add(COSFloat.ZERO);
+        values.add(COSFloat.ZERO);
     }
 
     /**

Modified: pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSArray.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSArray.java?rev=1915765&r1=1915764&r2=1915765&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSArray.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSArray.java Tue Feb 13 10:05:12 2024
@@ -117,7 +117,7 @@ class TestCOSArray
         cosArray.setFloatArray(floatArrayStart);
 
         assertEquals(3, cosArray.size());
-        assertEquals(new COSFloat(1.0f), cosArray.get(0));
+        assertEquals(COSFloat.ONE, cosArray.get(0));
         assertEquals(new COSFloat(0.1f), cosArray.get(1));
         assertEquals(new COSFloat(0.02f), cosArray.get(2));
 
@@ -134,9 +134,9 @@ class TestCOSArray
         assertArrayEquals(floatArrayStart, floatArrayEnd, 0);
 
         // check arrays with null values
-        cosArray = new COSArray(Arrays.asList(new COSFloat(1.0f), null, new COSFloat(0.02f)));
+        cosArray = new COSArray(Arrays.asList(COSFloat.ONE, null, new COSFloat(0.02f)));
         assertEquals(3, cosArray.size());
-        assertEquals(new COSFloat(1.0f), cosArray.get(0));
+        assertEquals(COSFloat.ONE, cosArray.get(0));
         assertNull(cosArray.get(1));
         assertEquals(new COSFloat(0.02f), cosArray.get(2));
 

Modified: pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/PDLineDashPatternTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/PDLineDashPatternTest.java?rev=1915765&r1=1915764&r2=1915765&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/PDLineDashPatternTest.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/PDLineDashPatternTest.java Tue Feb 13 10:05:12 2024
@@ -48,7 +48,7 @@ class PDLineDashPatternTest
         COSArray dashArray = (COSArray) dashBase.getObject(0);
         assertEquals(2, dashBase.size());
         assertEquals(2, dashArray.size());
-        assertEquals(new COSFloat(1), dashArray.get(0));
+        assertEquals(COSFloat.ONE, dashArray.get(0));
         assertEquals(new COSFloat(2), dashArray.get(1));
         assertEquals(COSInteger.THREE, dashBase.get(1));
         System.out.println(dash);

Modified: pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/util/MatrixTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/util/MatrixTest.java?rev=1915765&r1=1915764&r2=1915765&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/util/MatrixTest.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/util/MatrixTest.java Tue Feb 13 10:05:12 2024
@@ -234,7 +234,7 @@ class MatrixTest
         assertEquals(new COSFloat(5), toCOSArray.get(2));
         assertEquals(new COSFloat(8), toCOSArray.get(3));
         assertEquals(new COSFloat(2), toCOSArray.get(4));
-        assertEquals(new COSFloat(0), toCOSArray.get(5));
+        assertEquals(COSFloat.ZERO, toCOSArray.get(5));
         
     }