Merge pull request #4897 from CodingFabian/optimize-stream-getCode
Optimization for FlateStream_getCode, making more pdfs parsable.
This commit is contained in:
commit
806aa36aa8
@ -430,10 +430,12 @@ var FlateStream = (function FlateStreamClosure() {
|
|||||||
var codeSize = this.codeSize;
|
var codeSize = this.codeSize;
|
||||||
var codeBuf = this.codeBuf;
|
var codeBuf = this.codeBuf;
|
||||||
|
|
||||||
|
var b;
|
||||||
while (codeSize < maxLen) {
|
while (codeSize < maxLen) {
|
||||||
var b;
|
|
||||||
if ((b = str.getByte()) === -1) {
|
if ((b = str.getByte()) === -1) {
|
||||||
error('Bad encoding in flate stream');
|
// premature end of stream. code might however still be valid.
|
||||||
|
// codeSize < codeLen check below guards against incomplete codeVal.
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
codeBuf |= (b << codeSize);
|
codeBuf |= (b << codeSize);
|
||||||
codeSize += 8;
|
codeSize += 8;
|
||||||
@ -441,7 +443,7 @@ var FlateStream = (function FlateStreamClosure() {
|
|||||||
var code = codes[codeBuf & ((1 << maxLen) - 1)];
|
var code = codes[codeBuf & ((1 << maxLen) - 1)];
|
||||||
var codeLen = code >> 16;
|
var codeLen = code >> 16;
|
||||||
var codeVal = code & 0xffff;
|
var codeVal = code & 0xffff;
|
||||||
if (codeSize === 0 || codeSize < codeLen || codeLen === 0) {
|
if (codeLen < 1 || codeSize < codeLen) {
|
||||||
error('Bad encoding in flate stream');
|
error('Bad encoding in flate stream');
|
||||||
}
|
}
|
||||||
this.codeBuf = (codeBuf >> codeLen);
|
this.codeBuf = (codeBuf >> codeLen);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user