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 2016/03/29 22:35:46 UTC
svn commit: r1737043 - in /pdfbox/trunk:
pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java
Author: lehmi
Date: Tue Mar 29 20:35:46 2016
New Revision: 1737043
URL: http://svn.apache.org/viewvc?rev=1737043&view=rev
Log:
PDFBOX-3295: avoid using XrefTrailerResolver#getContainedObjectNumbers as proposed by Andrea Vacondio to speed up the parsing of object streams
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1737043&r1=1737042&r2=1737043&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java Tue Mar 29 20:35:46 2016
@@ -836,15 +836,11 @@ public class COSParser extends BaseParse
throw exception;
}
}
-
- // get set of object numbers referenced for this object stream
- final Set<Long> refObjNrs = xrefTrailerResolver.getContainedObjectNumbers(objstmObjNr);
-
// register all objects which are referenced to be contained in object stream
for (COSObject next : parser.getObjects())
{
COSObjectKey stmObjKey = new COSObjectKey(next);
- if (refObjNrs.contains(stmObjKey.getNumber()))
+ if (xrefTrailerResolver.getXrefTable().containsKey(stmObjKey))
{
COSObject stmObj = document.getObjectFromPool(stmObjKey);
stmObj.setObject(next.getObject());
Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java?rev=1737043&r1=1737042&r2=1737043&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java Tue Mar 29 20:35:46 2016
@@ -28,7 +28,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.activation.DataSource;
@@ -830,14 +829,11 @@ public class PreflightParser extends PDF
PDFObjectStreamParser parser = new PDFObjectStreamParser((COSStream) objstmBaseObj, document);
parser.parse();
- // get set of object numbers referenced for this object stream
- final Set<Long> refObjNrs = xrefTrailerResolver.getContainedObjectNumbers(objstmObjNr);
-
// register all objects which are referenced to be contained in object stream
for (COSObject next : parser.getObjects())
{
COSObjectKey stmObjKey = new COSObjectKey(next);
- if (refObjNrs.contains(stmObjKey.getNumber()))
+ if (xrefTrailerResolver.getXrefTable().containsKey(stmObjKey))
{
COSObject stmObj = document.getObjectFromPool(stmObjKey);
stmObj.setObject(next.getObject());