Simplify the PDFFunctionFactory._localFunctionCache initialization (PR 12034 follow-up)

By changing this a `shadow`ed getter, we can simply access it directly and not worry about it being initialized. I have no idea why I didn't just implement it this way in the first place.
This commit is contained in:
Jonas Jenwald 2021-01-22 12:25:05 +01:00
parent 2cba290361
commit cfaf23dee2

View File

@ -20,6 +20,7 @@ import {
info,
isBool,
IsEvalSupportedCached,
shadow,
unreachable,
} from "../shared/util.js";
import { PostScriptLexer, PostScriptParser } from "./ps_parser.js";
@ -29,7 +30,6 @@ class PDFFunctionFactory {
constructor({ xref, isEvalSupported = true }) {
this.xref = xref;
this.isEvalSupported = isEvalSupported !== false;
this._localFunctionCache = null; // Initialized lazily.
}
create(fn) {
@ -76,9 +76,6 @@ class PDFFunctionFactory {
fnRef = cacheKey.dict && cacheKey.dict.objId;
}
if (fnRef) {
if (!this._localFunctionCache) {
this._localFunctionCache = new LocalFunctionCache();
}
const localFunction = this._localFunctionCache.getByRef(fnRef);
if (localFunction) {
return localFunction;
@ -105,12 +102,16 @@ class PDFFunctionFactory {
fnRef = cacheKey.dict && cacheKey.dict.objId;
}
if (fnRef) {
if (!this._localFunctionCache) {
this._localFunctionCache = new LocalFunctionCache();
}
this._localFunctionCache.set(/* name = */ null, fnRef, parsedFunction);
}
}
/**
* @private
*/
get _localFunctionCache() {
return shadow(this, "_localFunctionCache", new LocalFunctionCache());
}
}
function toNumberArray(arr) {