From fc0cd4a443ef9d1fe6fe828b4edac447e51305e9 Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Mon, 5 Apr 2021 19:20:10 +0200 Subject: [PATCH] Convert the `startXRefParsedCache` variable, in `src/core/obj.js`, from an object to a set We only want to track XRef starting points instead of actual data, so using a set conveys that intention more clearly and is slightly more efficient. --- src/core/obj.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/obj.js b/src/core/obj.js index 93bcde59f..9456e85ad 100644 --- a/src/core/obj.js +++ b/src/core/obj.js @@ -1944,18 +1944,18 @@ var XRef = (function XRefClosure() { // Keep track of already parsed XRef tables, to prevent an infinite loop // when parsing corrupt PDF files where e.g. the /Prev entries create a // circular dependency between tables (fixes bug1393476.pdf). - const startXRefParsedCache = Object.create(null); + const startXRefParsedCache = new Set(); try { while (this.startXRefQueue.length) { var startXRef = this.startXRefQueue[0]; - if (startXRefParsedCache[startXRef]) { + if (startXRefParsedCache.has(startXRef)) { warn("readXRef - skipping XRef table since it was already parsed."); this.startXRefQueue.shift(); continue; } - startXRefParsedCache[startXRef] = true; + startXRefParsedCache.add(startXRef); stream.pos = startXRef + stream.start;