From 194a734e5dbed221a6d7356246ccf4bf5447e14c Mon Sep 17 00:00:00 2001 From: Rob Wu Date: Wed, 2 Oct 2013 00:03:32 +0200 Subject: [PATCH] Resolved severe memory leak (mozPrintCallback) Do NOT save the temporary element as `this.canvas`. `PDFViewer.pages[i].canvas` appears to be used to generate the thumbnail icons. Well, that's no justification for preventing GC of those temporary elements used during mozPrintCallback. With a document consisting of 79 pages, this resulted in a 600-700MB leaked memory. --- web/page_view.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/page_view.js b/web/page_view.js index 3d70074fe..2acfb7094 100644 --- a/web/page_view.js +++ b/web/page_view.js @@ -514,7 +514,7 @@ var PageView = function pageView(container, id, scale, // Use the same hack we use for high dpi displays for printing to get better // output until bug 811002 is fixed in FF. var PRINT_OUTPUT_SCALE = 2; - var canvas = this.canvas = document.createElement('canvas'); + var canvas = document.createElement('canvas'); canvas.width = Math.floor(viewport.width) * PRINT_OUTPUT_SCALE; canvas.height = Math.floor(viewport.height) * PRINT_OUTPUT_SCALE; canvas.style.width = (PRINT_OUTPUT_SCALE * viewport.width) + 'pt';