Fixes content stream reset; terminating rendering when destroyed

This commit is contained in:
Yury Delendik 2012-04-16 16:46:26 -05:00
parent 32684fe324
commit b6edbb38c1
2 changed files with 12 additions and 4 deletions

View File

@ -233,6 +233,11 @@ var PDFPageProxy = (function PDFPageProxyClosure() {
// Once the operatorList and fonts are loaded, do the actual rendering.
this.displayReadyPromise.then(
function pageDisplayReadyPromise() {
if (self.destroyed) {
complete();
return;
}
var gfx = new CanvasGraphics(params.canvasContext,
this.objs, params.textLayer);
try {
@ -351,8 +356,8 @@ var PDFPageProxy = (function PDFPageProxyClosure() {
this.destroyed = true;
if (!this.renderInProgress) {
delete self.operatorList;
delete self.displayReadyPromise;
delete this.operatorList;
delete this.displayReadyPromise;
}
}
};

View File

@ -137,10 +137,13 @@ var Page = (function PageClosure() {
var resources = this.resources;
if (isArray(content)) {
// fetching items
var streams = [];
var i, n = content.length;
for (i = 0; i < n; ++i)
content[i] = xref.fetchIfRef(content[i]);
content = new StreamsSequenceStream(content);
streams.push(xref.fetchIfRef(content[i]));
content = new StreamsSequenceStream(streams);
} else if (isStream(content)) {
content.reset();
} else if (!content) {
// replacing non-existent page content with empty one
content = new Stream(new Uint8Array(0));