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 2014/01/27 19:39:42 UTC
svn commit: r1561782 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java
Author: lehmi
Date: Mon Jan 27 18:39:41 2014
New Revision: 1561782
URL: http://svn.apache.org/r1561782
Log:
PDFBOX-1865: take the length of the stream into account when comparing xobjects
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java?rev=1561782&r1=1561781&r2=1561782&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java Mon Jan 27 18:39:41 2014
@@ -126,8 +126,18 @@ public class PDXObjectForm extends PDXOb
Map<String, PDXObject> xobjects = retval.getXObjects();
if (xobjects != null && xobjects.containsKey(name))
{
- retval.removeXObject(name);
- LOG.debug("Removed XObjectForm "+name+" to avoid a recursion");
+ PDXObject xobject = xobjects.get(name);
+ if (xobject instanceof PDXObjectForm)
+ {
+ int length1 = getCOSStream().getInt(COSName.LENGTH);
+ int length2 = xobject.getCOSStream().getInt(COSName.LENGTH);
+ // seems to be the same object
+ if (length1 == length2)
+ {
+ retval.removeXObject(name);
+ LOG.debug("Removed XObjectForm "+name+" to avoid a recursion");
+ }
+ }
}
}
}