Remove the intentState.receivingOperatorList
boolean since it's redundant
The `receivingOperatorList` property is currently tracked *twice* in the rendering code, both directly and inversely through the `intentState.operatorList.lastChunk` boolean. This type of double bookkeeping is never a good idea, since it's just too easy for the properties to accidentally fall out of sync. In this case there's even a `cleanup`-related bug caused by this, which means that `PDFPageProxy._tryCleanup` will never be able to discard any data if there's an error on the worker-thread (as handled through the 'PageError' message). Hence the simplest solution seems, at least to me, to update `PDFPageProxy._tryCleanup` to replace the `intentState.receivingOperatorList` check with a `!intentState.operatorList.lastChunk` check and completely remove the former property.
This commit is contained in:
parent
d7afb74a6e
commit
c6fcdf474b
@ -1023,7 +1023,6 @@ class PDFPageProxy {
|
||||
// If there's no displayReadyCapability yet, then the operatorList
|
||||
// was never requested before. Make the request and create the promise.
|
||||
if (!intentState.displayReadyCapability) {
|
||||
intentState.receivingOperatorList = true;
|
||||
intentState.displayReadyCapability = createPromiseCapability();
|
||||
intentState.operatorList = {
|
||||
fnArray: [],
|
||||
@ -1125,7 +1124,6 @@ class PDFPageProxy {
|
||||
if (!intentState.opListReadCapability) {
|
||||
opListTask = {};
|
||||
opListTask.operatorListChanged = operatorListChanged;
|
||||
intentState.receivingOperatorList = true;
|
||||
intentState.opListReadCapability = createPromiseCapability();
|
||||
intentState.renderTasks = [];
|
||||
intentState.renderTasks.push(opListTask);
|
||||
@ -1241,7 +1239,7 @@ class PDFPageProxy {
|
||||
Object.keys(this.intentStates).some(function(intent) {
|
||||
const intentState = this.intentStates[intent];
|
||||
return (intentState.renderTasks.length !== 0 ||
|
||||
intentState.receivingOperatorList);
|
||||
!intentState.operatorList.lastChunk);
|
||||
}, this)) {
|
||||
return;
|
||||
}
|
||||
@ -1290,7 +1288,6 @@ class PDFPageProxy {
|
||||
}
|
||||
|
||||
if (operatorListChunk.lastChunk) {
|
||||
intentState.receivingOperatorList = false;
|
||||
this._tryCleanup();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user