Author: lehmi
Date: Tue Mar 29 20:45:22 2016
New Revision: 1737047

URL: http://svn.apache.org/viewvc?rev=1737047&view=rev
Log:
PDFBOX-3295: avoid using XrefTrailerResolver#getContainedObjectNumbers as 
proposed by Andrea Vacondio to speed up the parsing of object streams

Modified:
    
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
    
pdfbox/branches/1.8/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java

Modified: 
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java?rev=1737047&r1=1737046&r2=1737047&view=diff
==============================================================================
--- 
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
 (original)
+++ 
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
 Tue Mar 29 20:45:22 2016
@@ -1513,16 +1513,12 @@ public class NonSequentialPDFParser exte
                             forceParsing);
                     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());

Modified: 
pdfbox/branches/1.8/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/1.8/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java?rev=1737047&r1=1737046&r2=1737047&view=diff
==============================================================================
--- 
pdfbox/branches/1.8/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java
 (original)
+++ 
pdfbox/branches/1.8/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java
 Tue Mar 29 20:45:22 2016
@@ -837,14 +837,11 @@ public class PreflightParser extends Non
                             forceParsing);
                     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());


Reply via email to