]> git.parisson.com Git - pdf.js.git/commitdiff
Refactor duplicate code in getWhiteCode.
authorKalervo Kujala <kkujala@com>
Mon, 17 Oct 2011 21:29:43 +0000 (00:29 +0300)
committerKalervo Kujala <kkujala@com>
Mon, 17 Oct 2011 21:29:43 +0000 (00:29 +0300)
Reuse functionality from getBlackCode for this.

pdf.js

diff --git a/pdf.js b/pdf.js
index 68c5dfad4815f2e5da1dcf817f77a7f7823e2e1e..d4326b5ab9c3ebb4baab581c24d534b61390e40a 100644 (file)
--- a/pdf.js
+++ b/pdf.js
@@ -2021,6 +2021,25 @@ var CCITTFaxStream = (function ccittFaxStream() {
     return EOF;
   };
 
+  var findTableCode = function ccittFaxStreamFindTableCode(start, end, table,
+                                                           limit) {
+    for (var i = start; i <= end; ++i) {
+      var code = this.lookBits(i);
+      if (code == EOF)
+        return [true, 1];
+      if (i < end)
+        code <<= end - i;
+      if (code >= limit) {
+        var p = table[code - ((limit == ccittEOL) ? 0 : limit)];
+        if (p[0] == i) {
+          this.eatBits(i);
+          return [true, p[1]];
+        }
+      }
+    }
+    return [false, 0];
+  };
+
   constructor.prototype.getWhiteCode = function ccittFaxStreamGetWhiteCode() {
     var code = 0;
     var p;
@@ -2040,31 +2059,13 @@ var CCITTFaxStream = (function ccittFaxStream() {
         return p[1];
       }
     } else {
-      for (var n = 1; n <= 9; ++n) {
-        code = this.lookBits(n);
-        if (code == EOF)
-          return 1;
+      var result = findTableCode(1, 9, whiteTable2, ccittEOL);
+      if (result[0])
+        return result[1];
 
-        if (n < 9)
-          code <<= 9 - n;
-        p = whiteTable2[code];
-        if (p[0] == n) {
-          this.eatBits(n);
-          return p[0];
-        }
-      }
-      for (var n = 11; n <= 12; ++n) {
-        code = this.lookBits(n);
-        if (code == EOF)
-          return 1;
-        if (n < 12)
-          code <<= 12 - n;
-        p = whiteTable1[code];
-        if (p[0] == n) {
-          this.eatBits(n);
-          return p[1];
-        }
-      }
+      result = findTableCode(11, 12, whiteTable1, ccittEOL);
+      if (result[0])
+        return result[1];
     }
     warn('bad white code');
     this.eatBits(1);
@@ -2089,34 +2090,15 @@ var CCITTFaxStream = (function ccittFaxStream() {
         return p[1];
       }
     } else {
-      var findBlackCode = function ccittFaxStreamFindBlackCode(start, end,
-                                                               table, limit) {
-        for (var i = start; i <= end; ++i) {
-          var code = this.lookBits(i);
-          if (code == EOF)
-            return [true, 1];
-          if (i < end)
-            code <<= end - i;
-          if (code >= limit) {
-            var p = table[code - ((limit == -1) ? 0 : limit)];
-            if (p[0] == i) {
-              this.eatBits(i);
-              return [true, p[1]];
-            }
-          }
-        }
-        return [false, 0];
-      };
-
-      var result = findBlackCode(2, 6, blackTable3, -1);
+      var result = findTableCode(2, 6, blackTable3, ccittEOL);
       if (result[0])
         return result[1];
 
-      result = findBlackCode(7, 12, blackTable2, 64);
+      result = findTableCode(7, 12, blackTable2, 64);
       if (result[0])
         return result[1];
 
-      result = findBlackCode(10, 13, blackTable1, -1);
+      result = findTableCode(10, 13, blackTable1, ccittEOL);
       if (result[0])
         return result[1];
     }