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 2012/03/11 14:53:43 UTC

svn commit: r1299358 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/ccitt/CCITTFaxG31DDecodeInputStream.java

Author: lehmi
Date: Sun Mar 11 13:53:42 2012
New Revision: 1299358

URL: http://svn.apache.org/viewvc?rev=1299358&view=rev
Log:
PDFBOX-1233: fixed the length of extended codes as proposed by Dave Smith

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/ccitt/CCITTFaxG31DDecodeInputStream.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/ccitt/CCITTFaxG31DDecodeInputStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/ccitt/CCITTFaxG31DDecodeInputStream.java?rev=1299358&r1=1299357&r2=1299358&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/ccitt/CCITTFaxG31DDecodeInputStream.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/ccitt/CCITTFaxG31DDecodeInputStream.java Sun Mar 11 13:53:42 2012
@@ -225,8 +225,8 @@ public class CCITTFaxG31DDecodeInputStre
         buildUpTerminating(BLACK_TERMINATING, BLACK_LOOKUP_TREE_ROOT, false);
         buildUpMakeUp(WHITE_MAKE_UP, WHITE_LOOKUP_TREE_ROOT);
         buildUpMakeUp(BLACK_MAKE_UP, BLACK_LOOKUP_TREE_ROOT);
-        buildUpMakeUp(LONG_MAKE_UP, WHITE_LOOKUP_TREE_ROOT);
-        buildUpMakeUp(LONG_MAKE_UP, BLACK_LOOKUP_TREE_ROOT);
+        buildUpMakeUpLong(LONG_MAKE_UP, WHITE_LOOKUP_TREE_ROOT);
+        buildUpMakeUpLong(LONG_MAKE_UP, BLACK_LOOKUP_TREE_ROOT);
         LookupTreeNode eolNode = new EndOfLineTreeNode();
         addLookupTreeNode(EOL_STARTER, WHITE_LOOKUP_TREE_ROOT, eolNode);
         addLookupTreeNode(EOL_STARTER, BLACK_LOOKUP_TREE_ROOT, eolNode);
@@ -250,6 +250,15 @@ public class CCITTFaxG31DDecodeInputStre
         }
     }
 
+    private static void buildUpMakeUpLong(short[] codes, NonLeafLookupTreeNode root)
+    {
+        for (int len = 0, c = codes.length; len < c; len++)
+        {
+            LookupTreeNode leaf = new MakeUpTreeNode((len + 28) * 64);
+            addLookupTreeNode(codes[len], root, leaf);
+        }
+    }
+
     private static void addLookupTreeNode(short code, NonLeafLookupTreeNode root,
             LookupTreeNode leaf)
     {