[Pkg-javascript-commits] [pdf.js] 117/210: Simplify Jbig2Image.decodeInteger()
David Prévot
taffit at moszumanska.debian.org
Thu Jun 5 14:21:08 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch upstream
in repository pdf.js.
commit 8c38c2cbe32f2a824973e5acb3e3f85fd27d9e3a
Author: fkaelberer <o_0_o at gmx.de>
Date: Sat May 10 18:03:54 2014 +0200
Simplify Jbig2Image.decodeInteger()
---
src/core/jbig2.js | 85 ++++++++++++++++---------------------------------------
1 file changed, 24 insertions(+), 61 deletions(-)
diff --git a/src/core/jbig2.js b/src/core/jbig2.js
index cf297bc..e4ae7c7 100755
--- a/src/core/jbig2.js
+++ b/src/core/jbig2.js
@@ -28,7 +28,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
if (id in this) {
return this[id];
}
- return (this[id] = new Int8Array(1<<16));
+ return (this[id] = new Int8Array(1 << 16));
}
};
@@ -53,69 +53,32 @@ var Jbig2Image = (function Jbig2ImageClosure() {
// A.2 Procedure for decoding values
function decodeInteger(contextCache, procedure, decoder) {
var contexts = contextCache.getContexts(procedure);
-
var prev = 1;
- var state = 1, v = 0, s;
- var toRead = 32, offset = 4436; // defaults for state 7
- while (state) {
- var bit = decoder.readBit(contexts, prev);
- prev = (prev < 256 ? (prev << 1) | bit :
- (((prev << 1) | bit) & 511) | 256);
- switch (state) {
- case 1:
- s = !!bit;
- break;
- case 2:
- if (bit) {
- break;
- }
- state = 7;
- toRead = 2;
- offset = 0;
- break;
- case 3:
- if (bit) {
- break;
- }
- state = 7;
- toRead = 4;
- offset = 4;
- break;
- case 4:
- if (bit) {
- break;
- }
- state = 7;
- toRead = 6;
- offset = 20;
- break;
- case 5:
- if (bit) {
- break;
- }
- state = 7;
- toRead = 8;
- offset = 84;
- break;
- case 6:
- if (bit) {
- break;
- }
- state = 7;
- toRead = 12;
- offset = 340;
- break;
- default:
- v = ((v << 1) | bit) >>> 0;
- if (--toRead === 0) {
- state = 0;
- }
- continue;
+
+ function readBits(length) {
+ var v = 0;
+ for (var i = 0; i < length; i++) {
+ var bit = decoder.readBit(contexts, prev);
+ prev = (prev < 256 ? (prev << 1) | bit :
+ (((prev << 1) | bit) & 511) | 256);
+ v = (v << 1) | bit;
}
- state++;
+ return v >>> 0;
}
- v += offset;
- return (!s ? v : (v > 0 ? -v : null));
+
+ var sign = readBits(1);
+ var value = readBits(1) ?
+ (readBits(1) ?
+ (readBits(1) ?
+ (readBits(1) ?
+ (readBits(1) ?
+ (readBits(32) + 4436) :
+ readBits(12) + 340) :
+ readBits(8) + 84) :
+ readBits(6) + 20) :
+ readBits(4) + 4) :
+ readBits(2);
+ return (sign === 0 ? value : (value > 0 ? -value : null));
}
// A.3 The IAID decoding procedure
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git
More information about the Pkg-javascript-commits
mailing list