From cfaf23dee2511f3288c988a6b0314f0fa68d8995 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald <jonas.jenwald@gmail.com> Date: Fri, 22 Jan 2021 12:25:05 +0100 Subject: [PATCH] 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. --- src/core/function.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/core/function.js b/src/core/function.js index 7f2b8d1da..4dcee828e 100644 --- a/src/core/function.js +++ b/src/core/function.js @@ -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) {