From cff6c8db082dec1c1d8de7cee3f258af15456b6e Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Mon, 16 Apr 2012 18:44:51 -0500 Subject: [PATCH] skip cached objects and has consistent font ids --- src/api.js | 2 ++ src/evaluator.js | 3 ++- test/driver.js | 10 ++++++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/api.js b/src/api.js index dfc245b03..3d97dacd2 100644 --- a/src/api.js +++ b/src/api.js @@ -489,6 +489,8 @@ var WorkerTransport = (function WorkerTransportClosure() { messageHandler.on('obj', function transportObj(data) { var id = data[0]; var type = data[1]; + if (this.objs.hasData(id)) + return; switch (type) { case 'JpegStream': diff --git a/src/evaluator.js b/src/evaluator.js index c57e291c0..e07394201 100644 --- a/src/evaluator.js +++ b/src/evaluator.js @@ -153,13 +153,14 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { font = xref.fetchIfRef(font) || fontRes.get(fontName); assertWellFormed(isDict(font)); + ++self.objIdCounter; if (!font.translated) { font.translated = self.translateFont(font, xref, resources, dependency); if (font.translated) { // keep track of each font we translated so the caller can // load them asynchronously before calling display on a page - loadedName = 'font_' + uniquePrefix + (++self.objIdCounter); + loadedName = 'font_' + uniquePrefix + self.objIdCounter; font.translated.properties.loadedName = loadedName; font.loadedName = loadedName; diff --git a/test/driver.js b/test/driver.js index 2f17fa43c..cd5ea49e7 100644 --- a/test/driver.js +++ b/test/driver.js @@ -194,13 +194,15 @@ function nextPage(task, loadError) { textLayer: textLayerBuilder, viewport: viewport }; - page.render(renderContext).then(function() { + var completeRender = (function(error) { page.destroy(); - snapshotCurrentPage(task, false); + snapshotCurrentPage(task, error); + }); + page.render(renderContext).then(function() { + completeRender(false); }, function(error) { - page.destroy(); - snapshotCurrentPage(task, 'render : ' + error); + completeRender('render : ' + error); }); }, function(error) {