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:28:01 UTC

svn commit: r1609275 - /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java

Author: tilman
Date: Wed Jul  9 19:28:00 2014
New Revision: 1609275

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

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

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java?rev=1609275&r1=1609274&r2=1609275&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java Wed Jul  9 19:28:00 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.
@@ -287,17 +288,26 @@ public class COSArrayList<E> implements 
      *
      * @return The list of Float objects.
      */
-    public static List<Float> convertFloatCOSArrayToList( COSArray floatArray )
+    public static List<Float> convertFloatCOSArrayToList(COSArray floatArray)
     {
         List<Float> retval = null;
-        if( floatArray != null )
+        if (floatArray != null)
         {
             List<Float> numbers = new ArrayList<Float>();
-            for( int i=0; i<floatArray.size(); i++ )
+            for (int i = 0; i < floatArray.size(); i++)
             {
-                numbers.add( new Float( ((COSNumber)floatArray.get( i )).floatValue() ) );
+                COSNumber num;
+                if (floatArray.get(i) instanceof COSObject)
+                {
+                    num = (COSNumber) ((COSObject) floatArray.get(i)).getObject();
+                }
+                else
+                {
+                    num = (COSNumber) floatArray.get(i);
+                }
+                numbers.add(num.floatValue());
             }
-            retval = new COSArrayList<Float>( numbers, floatArray );
+            retval = new COSArrayList<Float>(numbers, floatArray);
         }
         return retval;
     }