You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2022/06/26 11:36:04 UTC
svn commit: r1902256 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
Author: lehmi
Date: Sun Jun 26 11:36:03 2022
New Revision: 1902256
URL: http://svn.apache.org/viewvc?rev=1902256&view=rev
Log:
PDFBOX-4892: use COSObjectable/COSBase instead of Object, remove unused usage of List as input to simplify
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java?rev=1902256&r1=1902255&r2=1902256&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java Sun Jun 26 11:36:03 2022
@@ -21,7 +21,6 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
@@ -45,7 +44,7 @@ class PDFCloneUtility
private static final Log LOG = LogFactory.getLog(PDFCloneUtility.class);
private final PDDocument destination;
- private final Map<Object, COSBase> clonedVersion = new HashMap<>();
+ private final Map<COSObjectable, COSBase> clonedVersion = new HashMap<>();
private final Set<COSBase> clonedValues = new HashSet<>();
// It might be useful to use IdentityHashMap like in PDFBOX-4477 for speed,
// but we need a really huge file to test this. A test with the file from PDFBOX-4477
@@ -78,7 +77,7 @@ class PDFCloneUtility
* @return the cloned instance of the base object
* @throws IOException if an I/O error occurs
*/
- COSBase cloneForNewDocument(Object base) throws IOException
+ COSBase cloneForNewDocument(COSObjectable base) throws IOException
{
if (base == null)
{
@@ -95,17 +94,7 @@ class PDFCloneUtility
// Don't clone a clone
return (COSBase) base;
}
- if (base instanceof List)
- {
- COSArray array = new COSArray();
- List<?> list = (List<?>) base;
- for (Object obj : list)
- {
- array.add(cloneForNewDocument(obj));
- }
- retval = array;
- }
- else if (base instanceof COSObjectable && !(base instanceof COSBase))
+ if (!(base instanceof COSBase))
{
retval = cloneForNewDocument(((COSObjectable) base).getCOSObject());
}
@@ -121,7 +110,7 @@ class PDFCloneUtility
for (int i = 0; i < array.size(); i++)
{
COSBase value = array.get(i);
- if (hasSelfReference(base, value))
+ if (hasSelfReference(array, value))
{
newArray.add(newArray);
}
@@ -145,7 +134,7 @@ class PDFCloneUtility
for (Map.Entry<COSName, COSBase> entry : originalStream.entrySet())
{
COSBase value = entry.getValue();
- if (hasSelfReference(base, value))
+ if (hasSelfReference(originalStream, value))
{
stream.setItem(entry.getKey(), stream);
}
@@ -164,7 +153,7 @@ class PDFCloneUtility
for (Map.Entry<COSName, COSBase> entry : dic.entrySet())
{
COSBase value = entry.getValue();
- if (hasSelfReference(base, value))
+ if (hasSelfReference(dic, value))
{
((COSDictionary) retval).setItem(entry.getKey(), retval);
}
@@ -289,7 +278,7 @@ class PDFCloneUtility
* @param parent COSArray or COSDictionary
* @param value an element
*/
- private boolean hasSelfReference(Object parent, COSBase value)
+ private boolean hasSelfReference(COSBase parent, COSBase value)
{
if (value instanceof COSObject)
{