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