Merge pull request #13179 from Snuffleupagus/more-Set
Utilize `Set` a bit more in the code-base
This commit is contained in:
commit
11f2eab4b8
@ -1974,7 +1974,7 @@ class PartialEvaluator {
|
||||
normalizeWhitespace = false,
|
||||
combineTextItems = false,
|
||||
sink,
|
||||
seenStyles = Object.create(null),
|
||||
seenStyles = new Set(),
|
||||
}) {
|
||||
// Ensure that `resources`/`stateManager` is correctly initialized,
|
||||
// even if the provided parameter is e.g. `null`.
|
||||
@ -2024,17 +2024,19 @@ class PartialEvaluator {
|
||||
if (textContentItem.initialized) {
|
||||
return textContentItem;
|
||||
}
|
||||
var font = textState.font;
|
||||
if (!(font.loadedName in seenStyles)) {
|
||||
seenStyles[font.loadedName] = true;
|
||||
textContent.styles[font.loadedName] = {
|
||||
const font = textState.font,
|
||||
loadedName = font.loadedName;
|
||||
if (!seenStyles.has(loadedName)) {
|
||||
seenStyles.add(loadedName);
|
||||
|
||||
textContent.styles[loadedName] = {
|
||||
fontFamily: font.fallbackName,
|
||||
ascent: font.ascent,
|
||||
descent: font.descent,
|
||||
vertical: font.vertical,
|
||||
};
|
||||
}
|
||||
textContentItem.fontName = font.loadedName;
|
||||
textContentItem.fontName = loadedName;
|
||||
|
||||
// 9.4.4 Text Space Details
|
||||
var tsm = [
|
||||
|
@ -1284,10 +1284,7 @@ class PDFPageProxy {
|
||||
}
|
||||
|
||||
const complete = error => {
|
||||
const i = intentState.renderTasks.indexOf(internalRenderTask);
|
||||
if (i >= 0) {
|
||||
intentState.renderTasks.splice(i, 1);
|
||||
}
|
||||
intentState.renderTasks.delete(internalRenderTask);
|
||||
|
||||
// Attempt to reduce memory usage during *printing*, by always running
|
||||
// cleanup once rendering has finished (regardless of cleanupAfterRender).
|
||||
@ -1332,10 +1329,7 @@ class PDFPageProxy {
|
||||
pdfBug: this._pdfBug,
|
||||
});
|
||||
|
||||
if (!intentState.renderTasks) {
|
||||
intentState.renderTasks = [];
|
||||
}
|
||||
intentState.renderTasks.push(internalRenderTask);
|
||||
(intentState.renderTasks ||= new Set()).add(internalRenderTask);
|
||||
const renderTask = internalRenderTask.task;
|
||||
|
||||
Promise.all([
|
||||
@ -1370,10 +1364,7 @@ class PDFPageProxy {
|
||||
if (intentState.operatorList.lastChunk) {
|
||||
intentState.opListReadCapability.resolve(intentState.operatorList);
|
||||
|
||||
const i = intentState.renderTasks.indexOf(opListTask);
|
||||
if (i >= 0) {
|
||||
intentState.renderTasks.splice(i, 1);
|
||||
}
|
||||
intentState.renderTasks.delete(opListTask);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1389,8 +1380,7 @@ class PDFPageProxy {
|
||||
opListTask = Object.create(null);
|
||||
opListTask.operatorListChanged = operatorListChanged;
|
||||
intentState.opListReadCapability = createPromiseCapability();
|
||||
intentState.renderTasks = [];
|
||||
intentState.renderTasks.push(opListTask);
|
||||
(intentState.renderTasks ||= new Set()).add(opListTask);
|
||||
intentState.operatorList = {
|
||||
fnArray: [],
|
||||
argsArray: [],
|
||||
@ -1518,7 +1508,7 @@ class PDFPageProxy {
|
||||
return false;
|
||||
}
|
||||
for (const { renderTasks, operatorList } of this._intentStates.values()) {
|
||||
if (renderTasks.length !== 0 || !operatorList.lastChunk) {
|
||||
if (renderTasks.size > 0 || !operatorList.lastChunk) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -1565,8 +1555,8 @@ class PDFPageProxy {
|
||||
intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
|
||||
|
||||
// Notify all the rendering tasks there are more operators to be consumed.
|
||||
for (let i = 0; i < intentState.renderTasks.length; i++) {
|
||||
intentState.renderTasks[i].operatorListChanged();
|
||||
for (const internalRenderTask of intentState.renderTasks) {
|
||||
internalRenderTask.operatorListChanged();
|
||||
}
|
||||
|
||||
if (operatorListChunk.lastChunk) {
|
||||
@ -1615,8 +1605,8 @@ class PDFPageProxy {
|
||||
// Mark operator list as complete.
|
||||
intentState.operatorList.lastChunk = true;
|
||||
|
||||
for (let i = 0; i < intentState.renderTasks.length; i++) {
|
||||
intentState.renderTasks[i].operatorListChanged();
|
||||
for (const internalRenderTask of intentState.renderTasks) {
|
||||
internalRenderTask.operatorListChanged();
|
||||
}
|
||||
this._tryCleanup();
|
||||
}
|
||||
@ -1650,7 +1640,7 @@ class PDFPageProxy {
|
||||
if (!force) {
|
||||
// Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.
|
||||
// multiple render() calls on the same canvas, won't break all rendering.
|
||||
if (intentState.renderTasks.length !== 0) {
|
||||
if (intentState.renderTasks.size > 0) {
|
||||
return;
|
||||
}
|
||||
// Don't immediately abort parsing on the worker-thread when rendering is
|
||||
|
Loading…
x
Reference in New Issue
Block a user