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 2019/02/27 16:25:05 UTC
svn commit: r1854469 -
/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
Author: tilman
Date: Wed Feb 27 16:25:05 2019
New Revision: 1854469
URL: http://svn.apache.org/viewvc?rev=1854469&view=rev
Log:
PDFBOX-4475: optimize by using separate Set instead of calling Map.containsValue()
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java?rev=1854469&r1=1854468&r2=1854469&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java Wed Feb 27 16:25:05 2019
@@ -20,8 +20,10 @@ import java.io.IOException;
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.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
@@ -43,6 +45,7 @@ public class PDFCloneUtility
{
private final PDDocument destination;
private final Map<Object,COSBase> clonedVersion = new HashMap<Object,COSBase>();
+ private final Set<COSBase> clonedValues = new HashSet<COSBase>();
/**
* Creates a new instance for the given target document.
@@ -81,7 +84,7 @@ public class PDFCloneUtility
//we are done, it has already been converted.
return retval;
}
- if (base instanceof COSBase && clonedVersion.containsValue(base))
+ if (base instanceof COSBase && clonedValues.contains(base))
{
// Don't clone a clone
return (COSBase) base;
@@ -151,10 +154,10 @@ public class PDFCloneUtility
retval = (COSBase)base;
}
clonedVersion.put( base, retval );
+ clonedValues.add(retval);
return retval;
}
-
/**
* Merges two objects of the same type by deep-cloning its members.
* <br>
@@ -242,6 +245,6 @@ public class PDFCloneUtility
retval = (COSBase)base;
}
clonedVersion.put( base, retval );
+ clonedValues.add(retval);
}
-
}