Refactor the repeat logic in readBlock function.
In the function repeat the variabe i is not defined in the scope of the
function. This function was from moved by
92fa629d10
from its original place which had
the i as defined. This fix avoids the scope dependency.
This commit is contained in:
parent
6245073ad9
commit
d54e425a96
17
pdf.js
17
pdf.js
@ -556,12 +556,6 @@ var FlateStream = (function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
constructor.prototype.readBlock = function() {
|
constructor.prototype.readBlock = function() {
|
||||||
function repeat(stream, array, len, offset, what) {
|
|
||||||
var repeatLength = stream.getBits(len) + offset;
|
|
||||||
while (repeatLength-- > 0)
|
|
||||||
array[i++] = what;
|
|
||||||
}
|
|
||||||
|
|
||||||
// read block header
|
// read block header
|
||||||
var hdr = this.getBits(3);
|
var hdr = this.getBits(3);
|
||||||
if (hdr & 1)
|
if (hdr & 1)
|
||||||
@ -631,14 +625,19 @@ var FlateStream = (function() {
|
|||||||
while (i < codes) {
|
while (i < codes) {
|
||||||
var code = this.getCode(codeLenCodeTab);
|
var code = this.getCode(codeLenCodeTab);
|
||||||
if (code == 16) {
|
if (code == 16) {
|
||||||
repeat(this, codeLengths, 2, 3, len);
|
var bitsLength = 2, bitsOffset = 3, what = len;
|
||||||
} else if (code == 17) {
|
} else if (code == 17) {
|
||||||
repeat(this, codeLengths, 3, 3, len = 0);
|
var bitsLength = 3, bitsOffset = 3, what = (len = 0);
|
||||||
} else if (code == 18) {
|
} else if (code == 18) {
|
||||||
repeat(this, codeLengths, 7, 11, len = 0);
|
var bitsLength = 7, bitsOffset = 11, what = (len = 0);
|
||||||
} else {
|
} else {
|
||||||
codeLengths[i++] = len = code;
|
codeLengths[i++] = len = code;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var repeatLength = this.getBits(bitsLength) + bitsOffset;
|
||||||
|
while (repeatLength-- > 0)
|
||||||
|
codeLengths[i++] = what;
|
||||||
}
|
}
|
||||||
|
|
||||||
litCodeTable =
|
litCodeTable =
|
||||||
|
Loading…
Reference in New Issue
Block a user