Merge pull request #4897 from CodingFabian/optimize-stream-getCode

Optimization for FlateStream_getCode, making more pdfs parsable.
This commit is contained in:
Yury Delendik 2014-06-09 14:51:42 -05:00
commit 806aa36aa8

View File

@ -430,10 +430,12 @@ var FlateStream = (function FlateStreamClosure() {
var codeSize = this.codeSize;
var codeBuf = this.codeBuf;
var b;
while (codeSize < maxLen) {
var b;
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);
codeSize += 8;
@ -441,7 +443,7 @@ var FlateStream = (function FlateStreamClosure() {
var code = codes[codeBuf & ((1 << maxLen) - 1)];
var codeLen = code >> 16;
var codeVal = code & 0xffff;
if (codeSize === 0 || codeSize < codeLen || codeLen === 0) {
if (codeLen < 1 || codeSize < codeLen) {
error('Bad encoding in flate stream');
}
this.codeBuf = (codeBuf >> codeLen);