]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Simplified ASCII85Filter computation, thereby hopefully
authorKeiron Liddle <keiron@apache.org>
Fri, 2 Aug 2002 06:50:08 +0000 (06:50 +0000)
committerKeiron Liddle <keiron@apache.org>
Fri, 2 Aug 2002 06:50:08 +0000 (06:50 +0000)
working around JVM bugs
from Branch

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@195049 13f79535-47bb-0310-9956-ffa450edef68

src/org/apache/fop/pdf/ASCII85Filter.java

index 84e03f0eb63ee5bba2a1524dd02ebe28c97656ad..d08e835bb8377ac9447cbb2022bf314142c32786 100644 (file)
@@ -17,11 +17,9 @@ public class ASCII85Filter extends PDFFilter {
     private static final String ASCII85_EOD = "~>";
 
     private static final long base85_4 = 85;
-    private static final long base85_3 = base85_4 * base85_4;
-    private static final long base85_2 = base85_3 * base85_4;
-    private static final long base85_1 = base85_2 * base85_4;
-
-
+    //private static final long base85_3 = base85_4 * base85_4;
+    //private static final long base85_2 = base85_3 * base85_4;
+    //private static final long base85_1 = base85_2 * base85_4;
 
     public String getName() {
         return "/ASCII85Decode";
@@ -124,6 +122,7 @@ public class ASCII85Filter extends PDFFilter {
             };
             return result;
         } else {
+            /*
             byte c1 = (byte)((word / base85_1) & 0xFF);
             byte c2 = (byte)(((word - (c1 * base85_1)) / base85_2) & 0xFF);
             byte c3 =
@@ -141,6 +140,22 @@ public class ASCII85Filter extends PDFFilter {
                 (byte)(c3 + ASCII85_START), (byte)(c4 + ASCII85_START),
                 (byte)(c5 + ASCII85_START)
             };
+            */
+
+            byte c5 = (byte)((word % base85_4) + ASCII85_START);
+            word = word / base85_4;
+            byte c4 = (byte)((word % base85_4) + ASCII85_START);
+            word = word / base85_4;
+            byte c3 = (byte)((word % base85_4) + ASCII85_START);
+            word = word / base85_4;
+            byte c2 = (byte)((word % base85_4) + ASCII85_START);
+            word = word / base85_4;
+            byte c1 = (byte)((word % base85_4) + ASCII85_START);
+
+            byte[] ret = {
+              c1 , c2, c3, c4, c5
+            };
+
             for (int i = 0; i < ret.length; i++) {
                 if (ret[i] < 33 || ret[i] > 117) {
                     System.out.println("illegal char value "