Author: lehmi Date: Tue Jun 11 18:34:52 2024 New Revision: 1918267 URL: http://svn.apache.org/viewvc?rev=1918267&view=rev Log: PDFBOX-5809: use HashSet instead of ArraysList to speed up the import of pages
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java?rev=1918267&r1=1918266&r2=1918267&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java Tue Jun 11 18:34:52 2024 @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; import org.apache.pdfbox.pdmodel.common.COSObjectable; @@ -769,10 +770,10 @@ public class COSArray extends COSBase im * * Expert use only. You might run into an endless recursion if choosing a wrong starting point. * - * @param indirectObjects a list of already found indirect objects. + * @param indirectObjects a collection of already found indirect objects. * */ - public void getIndirectObjectKeys(List<COSObjectKey> indirectObjects) + public void getIndirectObjectKeys(Collection<COSObjectKey> indirectObjects) { if (indirectObjects == null) { Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java?rev=1918267&r1=1918266&r2=1918267&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java Tue Jun 11 18:34:52 2024 @@ -1419,10 +1419,10 @@ public class COSDictionary extends COSBa * * Expert use only. You might run into an endless recursion if choosing a wrong starting point. * - * @param indirectObjects a list of already found indirect objects. + * @param indirectObjects a collection of already found indirect objects. * */ - public void getIndirectObjectKeys(List<COSObjectKey> indirectObjects) + public void getIndirectObjectKeys(Collection<COSObjectKey> indirectObjects) { if (indirectObjects == null) { Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java?rev=1918267&r1=1918266&r2=1918267&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java Tue Jun 11 18:34:52 2024 @@ -28,6 +28,7 @@ import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -152,7 +153,7 @@ public class PDDocument implements Close private boolean signatureAdded = false; // cache for the key of all imported indirect objects - private final List<COSObjectKey> indirectObjectKeys = new ArrayList<>(); + private final Collection<COSObjectKey> indirectObjectKeys = new HashSet<>(); /** * Creates an empty PDF document.