window.onload = load;
function nextTask() {
+ // If there is a pdfDoc on the last task executed, destroy it to free memory.
+ if (task && task.pdfDoc) {
+ task.pdfDoc.destroy();
+ delete task.pdfDoc;
+ }
if (currentTaskIdx == manifest.length) {
return done();
}
var useWorker = true;
if (useWorker) {
- var worker = new Worker("../worker/boot_processor.js");
+ var worker = this.worker = new Worker("../worker/boot_processor.js");
} else {
// If we don't use a worker, just post/sendMessage to the main thread.
var worker = {
var page = this.pdf.getPage(n);
return this.pageCache[n] = new WorkerPage(this, page);
+ },
+
+ destroy: function() {
+ console.log("destroy worker");
+ if (this.worker) {
+ this.worker.terminate();
+ }
+ if (this.fontWorker) {
+ this.fontWorker.terminate();
+ }
+
+ for (var n in this.pageCache) {
+ delete this.pageCache[n];
+ }
+ delete this.data;
+ delete this.stream;
+ delete this.pdf;
+ delete this.catalog;
}
};