]> git.parisson.com Git - pdf.js.git/commitdiff
fix deflate code
authorAndreas Gal <andreas.gal@gmail.com>
Fri, 3 Jun 2011 21:22:38 +0000 (14:22 -0700)
committerAndreas Gal <andreas.gal@gmail.com>
Fri, 3 Jun 2011 21:22:38 +0000 (14:22 -0700)
pdf.js
test.html

diff --git a/pdf.js b/pdf.js
index f3145f18e5921e05ba0f09c2045f3324ec75010b..3fc418211fa1df6ef0a4dca346a3f86d98ea7ef2 100644 (file)
--- a/pdf.js
+++ b/pdf.js
@@ -788,22 +788,20 @@ var FlateStream = (function() {
             if (codeSize == 0|| codeSize < codeLen || codeLen == 0)
                 error("Bad encoding in flate stream");
             this.codeBuf = (codeBuf >> codeLen);
-            this.codeLen = (codeLen - codeLen);
+            this.codeSize = (codeSize - codeLen);
             return codeVal;
         },
-        ensureBuffer: function(requested, copy) {
+        ensureBuffer: function(requested) {
             var buffer = this.buffer;
             var current = buffer ? buffer.byteLength : 0;
-            if (current < requested)
+            if (requested < current)
                 return buffer;
             var size = 512;
             while (size < requested)
                 size <<= 1;
             var buffer2 = new Uint8Array(size);
-            if (copy) {
-                for (var i = 0; i < current; ++i)
-                    buffer2[i] = buffer[i];
-            }
+            for (var i = 0; i < current; ++i)
+                buffer2[i] = buffer[i];
             return this.buffer = buffer2;
         },
         lookChar: function() {
@@ -813,8 +811,9 @@ var FlateStream = (function() {
                 if (this.eof)
                     return;
                 this.readBlock();
+                bufferPos = this.bufferPos;
             }
-            return String.fromChar(this.buffer[bufferPos]);
+            return String.fromCharCode(this.buffer[bufferPos]);
         },
         getChar: function() {
             var ch = this.lookChar();
@@ -922,31 +921,31 @@ var FlateStream = (function() {
                     codeLenCodeLengths[codeLenCodeMap[i++]] = this.getBits(3);
                 var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);
 
-                // built the literal and distance code tables
+                // build the literal and distance code tables
                 var len = 0;
                 var i = 0;
                 var codes = numLitCodes + numDistCodes;
                 var codeLengths = new Array(codes);
                 while (i < codes) {
-                    function repeat(stream, array, i, len, offset, what) {
+                    function repeat(stream, array, len, offset, what) {
                         var repeat = stream.getBits(len) + offset;
                         while (repeat-- > 0)
                             array[i++] = what;
                     }
                     var code = this.getCode(codeLenCodeTab);
                     if (code == 16) {
-                        repeat(this, codeLengths, i, 2, 3, len);
+                        repeat(this, codeLengths, 2, 3, len);
                     } else if (code == 17) {
-                        repeat(this, codeLengths, i, 3, 3, len = 0);
+                        repeat(this, codeLengths, 3, 3, len = 0);
                     } else if (code == 18) {
-                        repeat(this, codeLengths, i, 7, 11, len = 0);
+                        repeat(this, codeLengths, 7, 11, len = 0);
                     } else {
                         codeLengths[i++] = len = code;
                     }
                 }
 
                 litCodeTable = this.generateHuffmanTable(codeLengths.slice(0, numLitCodes));
-                distCodeTable = this.generateHuffmanTable(codeLengths.slice(numDistCodes, codes));
+                distCodeTable = this.generateHuffmanTable(codeLengths.slice(numLitCodes, codes));
             } else {
                 error("Unknown block type in flate stream");
             }
index 10a35e16359074aa95a454d965a725d3cf488d4e..8513529fef2baffb9e2b94c7679f6918399adcb5 100644 (file)
--- a/test.html
+++ b/test.html
@@ -40,7 +40,7 @@ function load() {
     canvas.mozOpaque = true;
     pageDisplay = document.getElementById("pageNumber");
     infoDisplay = document.getElementById("info");
-    open("uncompressed.tracemonkey-pldi-09.pdf");
+    open("compressed.tracemonkey-pldi-09.pdf");
 }
 
 function open(url) {