1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-19 22:58:07 +02:00

Merge pull request #18273 from Snuffleupagus/addLocallyCachedImageOps

Add a helper function for handling locally cached image data (PR 18269 follow-up)
This commit is contained in:
Jonas Jenwald 2024-06-18 18:11:19 +02:00 committed by GitHub
commit 701325896a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -171,7 +171,12 @@ function normalizeBlendMode(value, parsingArray = false) {
return "source-over";
}
function incrementCachedImageMaskCount(data) {
function addLocallyCachedImageOps(opList, data) {
if (data.objId) {
opList.addDependency(data.objId);
}
opList.addImageOps(data.fn, data.args, data.optionalContent);
if (data.fn === OPS.paintImageMaskXObject && data.args[0]?.count > 0) {
data.args[0].count++;
}
@ -1785,16 +1790,7 @@ class PartialEvaluator {
if (isValidName) {
const localImage = localImageCache.getByName(name);
if (localImage) {
if (localImage.objId) {
operatorList.addDependency(localImage.objId);
}
operatorList.addImageOps(
localImage.fn,
localImage.args,
localImage.optionalContent
);
incrementCachedImageMaskCount(localImage);
addLocallyCachedImageOps(operatorList, localImage);
args = null;
continue;
}
@ -1812,16 +1808,7 @@ class PartialEvaluator {
localImageCache.getByRef(xobj) ||
self._regionalImageCache.getByRef(xobj);
if (localImage) {
if (localImage.objId) {
operatorList.addDependency(localImage.objId);
}
operatorList.addImageOps(
localImage.fn,
localImage.args,
localImage.optionalContent
);
incrementCachedImageMaskCount(localImage);
addLocallyCachedImageOps(operatorList, localImage);
resolveXObject();
return;
}
@ -1936,16 +1923,7 @@ class PartialEvaluator {
if (cacheKey) {
const localImage = localImageCache.getByName(cacheKey);
if (localImage) {
if (localImage.objId) {
operatorList.addDependency(localImage.objId);
}
operatorList.addImageOps(
localImage.fn,
localImage.args,
localImage.optionalContent
);
incrementCachedImageMaskCount(localImage);
addLocallyCachedImageOps(operatorList, localImage);
args = null;
continue;
}