mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-08 17:30:09 +02:00
Merge pull request #5445 from CodingFabian/fixImageCachingInParser
Fixes caching of inline images during parsing.
This commit is contained in:
commit
f5df30f967
2 changed files with 34 additions and 37 deletions
|
@ -171,7 +171,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
buildPaintImageXObject:
|
||||
function PartialEvaluator_buildPaintImageXObject(resources, image,
|
||||
inline, operatorList,
|
||||
cacheKey, cache) {
|
||||
cacheKey, imageCache) {
|
||||
var self = this;
|
||||
var dict = image.dict;
|
||||
var w = dict.get('Width', 'W');
|
||||
|
@ -209,9 +209,10 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
args = [imgData];
|
||||
operatorList.addOp(OPS.paintImageMaskXObject, args);
|
||||
if (cacheKey) {
|
||||
cache.key = cacheKey;
|
||||
cache.fn = OPS.paintImageMaskXObject;
|
||||
cache.args = args;
|
||||
imageCache[cacheKey] = {
|
||||
fn: OPS.paintImageMaskXObject,
|
||||
args: args
|
||||
};
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -260,9 +261,10 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
|
||||
operatorList.addOp(OPS.paintImageXObject, args);
|
||||
if (cacheKey) {
|
||||
cache.key = cacheKey;
|
||||
cache.fn = OPS.paintImageXObject;
|
||||
cache.args = args;
|
||||
imageCache[cacheKey] = {
|
||||
fn: OPS.paintImageXObject,
|
||||
args: args
|
||||
};
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -656,8 +658,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
}
|
||||
// eagerly compile XForm objects
|
||||
var name = args[0].name;
|
||||
if (imageCache.key === name) {
|
||||
operatorList.addOp(imageCache.fn, imageCache.args);
|
||||
if (imageCache[name] !== undefined) {
|
||||
operatorList.addOp(imageCache[name].fn, imageCache[name].args);
|
||||
args = null;
|
||||
continue;
|
||||
}
|
||||
|
@ -706,10 +708,13 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
}, reject);
|
||||
case OPS.endInlineImage:
|
||||
var cacheKey = args[0].cacheKey;
|
||||
if (cacheKey && imageCache.key === cacheKey) {
|
||||
operatorList.addOp(imageCache.fn, imageCache.args);
|
||||
args = null;
|
||||
continue;
|
||||
if (cacheKey) {
|
||||
var cacheEntry = imageCache[cacheKey];
|
||||
if (cacheEntry !== undefined) {
|
||||
operatorList.addOp(cacheEntry.fn, cacheEntry.args);
|
||||
args = null;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
self.buildPaintImageXObject(resources, args[0], true,
|
||||
operatorList, cacheKey, imageCache);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue