]> git.parisson.com Git - pdf.js.git/commitdiff
skip cached objects and has consistent font ids
authorYury Delendik <ydelendik@mozilla.com>
Mon, 16 Apr 2012 23:44:51 +0000 (18:44 -0500)
committerYury Delendik <ydelendik@mozilla.com>
Tue, 17 Apr 2012 02:42:05 +0000 (21:42 -0500)
src/api.js
src/evaluator.js
test/driver.js

index dfc245b03167108da2e95d9aeb915683d5473f99..3d97dacd2e3ebe2b61a0028b1b0b884753e68b6d 100644 (file)
@@ -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':
index c57e291c0f19f76ac480082acc69ef709cc422f6..e073942013e2bb2a0fb7982b67e7c04ef0aeba1b 100644 (file)
@@ -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;
 
index 2f17fa43c248aea1c7c575859595b3d9b79a754b..cd5ea49e76b0e146104239ad9fdb63b92c08c708 100644 (file)
@@ -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) {