Merge pull request #13184 from timvandermeij/sets
Convert objects to sets in places where we only track keys
This commit is contained in:
commit
336ebd6fa1
@ -1944,18 +1944,18 @@ var XRef = (function XRefClosure() {
|
|||||||
// Keep track of already parsed XRef tables, to prevent an infinite loop
|
// 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
|
// when parsing corrupt PDF files where e.g. the /Prev entries create a
|
||||||
// circular dependency between tables (fixes bug1393476.pdf).
|
// circular dependency between tables (fixes bug1393476.pdf).
|
||||||
const startXRefParsedCache = Object.create(null);
|
const startXRefParsedCache = new Set();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
while (this.startXRefQueue.length) {
|
while (this.startXRefQueue.length) {
|
||||||
var startXRef = this.startXRefQueue[0];
|
var startXRef = this.startXRefQueue[0];
|
||||||
|
|
||||||
if (startXRefParsedCache[startXRef]) {
|
if (startXRefParsedCache.has(startXRef)) {
|
||||||
warn("readXRef - skipping XRef table since it was already parsed.");
|
warn("readXRef - skipping XRef table since it was already parsed.");
|
||||||
this.startXRefQueue.shift();
|
this.startXRefQueue.shift();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
startXRefParsedCache[startXRef] = true;
|
startXRefParsedCache.add(startXRef);
|
||||||
|
|
||||||
stream.pos = startXRef + stream.start;
|
stream.pos = startXRef + stream.start;
|
||||||
|
|
||||||
|
@ -249,7 +249,7 @@ class PDFFindController {
|
|||||||
this._pageDiffs = [];
|
this._pageDiffs = [];
|
||||||
this._matchesCountTotal = 0;
|
this._matchesCountTotal = 0;
|
||||||
this._pagesToSearch = null;
|
this._pagesToSearch = null;
|
||||||
this._pendingFindMatches = Object.create(null);
|
this._pendingFindMatches = new Set();
|
||||||
this._resumePageIdx = null;
|
this._resumePageIdx = null;
|
||||||
this._dirtyMatch = false;
|
this._dirtyMatch = false;
|
||||||
clearTimeout(this._findTimeout);
|
clearTimeout(this._findTimeout);
|
||||||
@ -600,12 +600,12 @@ class PDFFindController {
|
|||||||
|
|
||||||
for (let i = 0; i < numPages; i++) {
|
for (let i = 0; i < numPages; i++) {
|
||||||
// Start finding the matches as soon as the text is extracted.
|
// Start finding the matches as soon as the text is extracted.
|
||||||
if (this._pendingFindMatches[i] === true) {
|
if (this._pendingFindMatches.has(i)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
this._pendingFindMatches[i] = true;
|
this._pendingFindMatches.add(i);
|
||||||
this._extractTextPromises[i].then(pageIdx => {
|
this._extractTextPromises[i].then(pageIdx => {
|
||||||
delete this._pendingFindMatches[pageIdx];
|
this._pendingFindMatches.delete(pageIdx);
|
||||||
this._calculateMatch(pageIdx);
|
this._calculateMatch(pageIdx);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user