Author: tilman
Date: Tue Nov 11 16:23:54 2025
New Revision: 1929662

Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov; DRY refactoring; closes 
#321

Modified:
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java
==============================================================================
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java    
    Tue Nov 11 14:23:38 2025        (r1929661)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java    
    Tue Nov 11 16:23:54 2025        (r1929662)
@@ -68,19 +68,9 @@ public class COSArray extends COSBase im
      */
     public void add( COSBase object )
     {
-        // wrap indirect objects
-        if ((object instanceof COSDictionary || object instanceof COSArray) && 
!object.isDirect()
-                && object.getKey() != null)
-        {
-            COSObject cosObject = new COSObject(object, object.getKey());
-            objects.add(cosObject);
-            getUpdateState().update(cosObject);
-        }
-        else
-        {
-            objects.add(object);
-            getUpdateState().update(object);
-        }
+        COSBase objectToAdd = maybeWrap(object);
+        objects.add(objectToAdd);
+        getUpdateState().update(objectToAdd);
     }
 
     /**
@@ -107,19 +97,9 @@ public class COSArray extends COSBase im
      */
     public void add( int i, COSBase object)
     {
-        // wrap indirect objects
-        if ((object instanceof COSDictionary || object instanceof COSArray) && 
!object.isDirect()
-                && object.getKey() != null)
-        {
-            COSObject cosObject = new COSObject(object, object.getKey());
-            objects.add(i, cosObject);
-            getUpdateState().update(cosObject);
-        }
-        else
-        {
-            objects.add(i, object);
-            getUpdateState().update(object);
-        }
+        COSBase objectToAdd = maybeWrap(object);
+        objects.add(i, objectToAdd);
+        getUpdateState().update(objectToAdd);
     }
 
     /**
@@ -207,19 +187,9 @@ public class COSArray extends COSBase im
      */
     public void set( int index, COSBase object )
     {
-        // wrap indirect objects
-        if ((object instanceof COSDictionary || object instanceof COSArray) && 
!object.isDirect()
-                && object.getKey() != null)
-        {
-            COSObject cosObject = new COSObject(object, object.getKey());
-            objects.set(index, cosObject);
-            getUpdateState().update(cosObject);
-        }
-        else
-        {
-            objects.set(index, object);
-            getUpdateState().update(object);
-        }
+        COSBase objectToAdd = maybeWrap(object);
+        objects.set(index, objectToAdd);
+        getUpdateState().update(objectToAdd);
     }
 
     /**
@@ -853,4 +823,16 @@ public class COSArray extends COSBase im
             }
         }
     }
+
+    // wrap indirect objects
+    private COSBase maybeWrap(COSBase object)
+    {
+        COSBase objectToAdd = object;
+        if ((object instanceof COSDictionary || object instanceof COSArray) && 
!object.isDirect()
+                && object.getKey() != null)
+        {
+            objectToAdd = new COSObject(object, object.getKey());
+        }
+        return objectToAdd;
+    }
 }

Reply via email to