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 2014/07/09 21:15:33 UTC

svn commit: r1609269 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java

Author: tilman
Date: Wed Jul  9 19:15:32 2014
New Revision: 1609269

URL: http://svn.apache.org/r1609269
Log:
PDFBOX-2198: resolve indirect reference in font widths

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java?rev=1609269&r1=1609268&r2=1609269&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java Wed Jul  9 19:15:32 2014
@@ -31,6 +31,7 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
+import org.apache.pdfbox.cos.COSObject;
 
 /**
  * This is an implementation of a List that will sync its contents to a COSArray.
@@ -267,17 +268,26 @@ public class COSArrayList<E> implements 
      *
      * @return A list that is part of the core Java collections.
      */
-    public static List<Integer> convertIntegerCOSArrayToList( COSArray intArray )
+    public static List<Integer> convertIntegerCOSArrayToList(COSArray intArray)
     {
         List<Integer> retval = null;
         if (intArray != null)
         {
             List<Integer> numbers = new ArrayList<Integer>();
-            for( int i=0; i<intArray.size(); i++ )
+            for (int i = 0; i < intArray.size(); i++)
             {
-                numbers.add( new Integer( ((COSNumber)intArray.get( i )).intValue() ) );
+                COSNumber num;
+                if (intArray.get(i) instanceof COSObject)
+                {
+                    num = (COSNumber) ((COSObject) intArray.get(i)).getObject();
+                }
+                else
+                {
+                    num = (COSNumber) intArray.get(i);
+                }
+                numbers.add(num.intValue());
             }
-            retval = new COSArrayList<Integer>( numbers, intArray );
+            retval = new COSArrayList<Integer>(numbers, intArray);
         }
         return retval;
     }