Przeglądaj źródła

PDF.js version 1.7.397 - See mozilla/pdf.js@72eeb1ccb3afaab25d3c581456f9080fae75c0ff

pdfjsbot 8 lat temu
rodzic
commit
248af8e31b

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
   "name": "pdfjs-dist",
-  "version": "1.7.395",
+  "version": "1.7.397",
   "main": [
     "build/pdf.js",
     "build/pdf.worker.js"

+ 28 - 11
build/pdf.combined.js

@@ -12716,8 +12716,8 @@ var _UnsupportedManager = function UnsupportedManagerClosure() {
     }
   };
 }();
-exports.version = '1.7.395';
-exports.build = '07f7c97b';
+exports.version = '1.7.397';
+exports.build = '72eeb1cc';
 exports.getDocument = getDocument;
 exports.PDFDataRangeTransport = PDFDataRangeTransport;
 exports.PDFWorker = PDFWorker;
@@ -22837,6 +22837,7 @@ var stringToUTF8String = sharedUtil.stringToUTF8String;
 var warn = sharedUtil.warn;
 var createValidAbsoluteUrl = sharedUtil.createValidAbsoluteUrl;
 var Util = sharedUtil.Util;
+var Dict = corePrimitives.Dict;
 var Ref = corePrimitives.Ref;
 var RefSet = corePrimitives.RefSet;
 var RefSetCache = corePrimitives.RefSetCache;
@@ -22856,9 +22857,10 @@ var Catalog = function CatalogClosure() {
     this.pdfManager = pdfManager;
     this.xref = xref;
     this.catDict = xref.getCatalogObj();
+    assert(isDict(this.catDict), 'catalog object is not a dictionary');
     this.fontCache = new RefSetCache();
     this.builtInCMapCache = Object.create(null);
-    assert(isDict(this.catDict), 'catalog object is not a dictionary');
+    this.pageKidsCountCache = new RefSetCache();
     this.pageFactory = pageFactory;
     this.pagePromises = [];
   }
@@ -23174,6 +23176,7 @@ var Catalog = function CatalogClosure() {
       return shadow(this, 'javaScript', javaScript);
     },
     cleanup: function Catalog_cleanup() {
+      this.pageKidsCountCache.clear();
       var promises = [];
       this.fontCache.forEach(function (promise) {
         promises.push(promise);
@@ -23200,15 +23203,25 @@ var Catalog = function CatalogClosure() {
     getPageDict: function Catalog_getPageDict(pageIndex) {
       var capability = createPromiseCapability();
       var nodesToVisit = [this.catDict.getRaw('Pages')];
-      var currentPageIndex = 0;
-      var xref = this.xref;
+      var count,
+          currentPageIndex = 0;
+      var xref = this.xref,
+          pageKidsCountCache = this.pageKidsCountCache;
       function next() {
         while (nodesToVisit.length) {
           var currentNode = nodesToVisit.pop();
           if (isRef(currentNode)) {
+            count = pageKidsCountCache.get(currentNode);
+            if (count > 0 && currentPageIndex + count < pageIndex) {
+              currentPageIndex += count;
+              continue;
+            }
             xref.fetchAsync(currentNode).then(function (obj) {
               if (isDict(obj, 'Page') || isDict(obj) && !obj.has('Kids')) {
                 if (pageIndex === currentPageIndex) {
+                  if (currentNode && !pageKidsCountCache.has(currentNode)) {
+                    pageKidsCountCache.put(currentNode, 1);
+                  }
                   capability.resolve([obj, currentNode]);
                 } else {
                   currentPageIndex++;
@@ -23222,7 +23235,11 @@ var Catalog = function CatalogClosure() {
             return;
           }
           assert(isDict(currentNode), 'page dictionary kid reference points to wrong type of object');
-          var count = currentNode.get('Count');
+          count = currentNode.get('Count');
+          var objId = currentNode.objId;
+          if (objId && !pageKidsCountCache.has(objId)) {
+            pageKidsCountCache.put(objId, count);
+          }
           if (currentPageIndex + count <= pageIndex) {
             currentPageIndex += count;
             continue;
@@ -23814,7 +23831,7 @@ var XRef = function XRefClosure() {
       var num = ref.num;
       if (num in this.cache) {
         var cacheEntry = this.cache[num];
-        if (isDict(cacheEntry) && !cacheEntry.objId) {
+        if (cacheEntry instanceof Dict && !cacheEntry.objId) {
           cacheEntry.objId = ref.toString();
         }
         return cacheEntry;
@@ -27891,8 +27908,8 @@ if (!globalScope.PDFJS) {
   globalScope.PDFJS = {};
 }
 var PDFJS = globalScope.PDFJS;
-PDFJS.version = '1.7.395';
-PDFJS.build = '07f7c97b';
+PDFJS.version = '1.7.397';
+PDFJS.build = '72eeb1cc';
 PDFJS.pdfBug = false;
 if (PDFJS.verbosity !== undefined) {
   sharedUtil.setVerbosityLevel(PDFJS.verbosity);
@@ -43430,8 +43447,8 @@ exports.TilingPattern = TilingPattern;
 "use strict";
 
 
-var pdfjsVersion = '1.7.395';
-var pdfjsBuild = '07f7c97b';
+var pdfjsVersion = '1.7.397';
+var pdfjsBuild = '72eeb1cc';
 var pdfjsSharedUtil = __w_pdfjs_require__(0);
 var pdfjsDisplayGlobal = __w_pdfjs_require__(26);
 var pdfjsDisplayAPI = __w_pdfjs_require__(10);

+ 6 - 6
build/pdf.js

@@ -3430,8 +3430,8 @@ var _UnsupportedManager = function UnsupportedManagerClosure() {
     }
   };
 }();
-exports.version = '1.7.395';
-exports.build = '07f7c97b';
+exports.version = '1.7.397';
+exports.build = '72eeb1cc';
 exports.getDocument = getDocument;
 exports.PDFDataRangeTransport = PDFDataRangeTransport;
 exports.PDFWorker = PDFWorker;
@@ -5370,8 +5370,8 @@ if (!globalScope.PDFJS) {
   globalScope.PDFJS = {};
 }
 var PDFJS = globalScope.PDFJS;
-PDFJS.version = '1.7.395';
-PDFJS.build = '07f7c97b';
+PDFJS.version = '1.7.397';
+PDFJS.build = '72eeb1cc';
 PDFJS.pdfBug = false;
 if (PDFJS.verbosity !== undefined) {
   sharedUtil.setVerbosityLevel(PDFJS.verbosity);
@@ -7881,8 +7881,8 @@ exports.TilingPattern = TilingPattern;
 "use strict";
 
 
-var pdfjsVersion = '1.7.395';
-var pdfjsBuild = '07f7c97b';
+var pdfjsVersion = '1.7.397';
+var pdfjsBuild = '72eeb1cc';
 var pdfjsSharedUtil = __w_pdfjs_require__(0);
 var pdfjsDisplayGlobal = __w_pdfjs_require__(9);
 var pdfjsDisplayAPI = __w_pdfjs_require__(3);

Plik diff jest za duży
+ 0 - 0
build/pdf.min.js


+ 24 - 7
build/pdf.worker.js

@@ -19944,6 +19944,7 @@ var stringToUTF8String = sharedUtil.stringToUTF8String;
 var warn = sharedUtil.warn;
 var createValidAbsoluteUrl = sharedUtil.createValidAbsoluteUrl;
 var Util = sharedUtil.Util;
+var Dict = corePrimitives.Dict;
 var Ref = corePrimitives.Ref;
 var RefSet = corePrimitives.RefSet;
 var RefSetCache = corePrimitives.RefSetCache;
@@ -19963,9 +19964,10 @@ var Catalog = function CatalogClosure() {
     this.pdfManager = pdfManager;
     this.xref = xref;
     this.catDict = xref.getCatalogObj();
+    assert(isDict(this.catDict), 'catalog object is not a dictionary');
     this.fontCache = new RefSetCache();
     this.builtInCMapCache = Object.create(null);
-    assert(isDict(this.catDict), 'catalog object is not a dictionary');
+    this.pageKidsCountCache = new RefSetCache();
     this.pageFactory = pageFactory;
     this.pagePromises = [];
   }
@@ -20281,6 +20283,7 @@ var Catalog = function CatalogClosure() {
       return shadow(this, 'javaScript', javaScript);
     },
     cleanup: function Catalog_cleanup() {
+      this.pageKidsCountCache.clear();
       var promises = [];
       this.fontCache.forEach(function (promise) {
         promises.push(promise);
@@ -20307,15 +20310,25 @@ var Catalog = function CatalogClosure() {
     getPageDict: function Catalog_getPageDict(pageIndex) {
       var capability = createPromiseCapability();
       var nodesToVisit = [this.catDict.getRaw('Pages')];
-      var currentPageIndex = 0;
-      var xref = this.xref;
+      var count,
+          currentPageIndex = 0;
+      var xref = this.xref,
+          pageKidsCountCache = this.pageKidsCountCache;
       function next() {
         while (nodesToVisit.length) {
           var currentNode = nodesToVisit.pop();
           if (isRef(currentNode)) {
+            count = pageKidsCountCache.get(currentNode);
+            if (count > 0 && currentPageIndex + count < pageIndex) {
+              currentPageIndex += count;
+              continue;
+            }
             xref.fetchAsync(currentNode).then(function (obj) {
               if (isDict(obj, 'Page') || isDict(obj) && !obj.has('Kids')) {
                 if (pageIndex === currentPageIndex) {
+                  if (currentNode && !pageKidsCountCache.has(currentNode)) {
+                    pageKidsCountCache.put(currentNode, 1);
+                  }
                   capability.resolve([obj, currentNode]);
                 } else {
                   currentPageIndex++;
@@ -20329,7 +20342,11 @@ var Catalog = function CatalogClosure() {
             return;
           }
           assert(isDict(currentNode), 'page dictionary kid reference points to wrong type of object');
-          var count = currentNode.get('Count');
+          count = currentNode.get('Count');
+          var objId = currentNode.objId;
+          if (objId && !pageKidsCountCache.has(objId)) {
+            pageKidsCountCache.put(objId, count);
+          }
           if (currentPageIndex + count <= pageIndex) {
             currentPageIndex += count;
             continue;
@@ -20921,7 +20938,7 @@ var XRef = function XRefClosure() {
       var num = ref.num;
       if (num in this.cache) {
         var cacheEntry = this.cache[num];
-        if (isDict(cacheEntry) && !cacheEntry.objId) {
+        if (cacheEntry instanceof Dict && !cacheEntry.objId) {
           cacheEntry.objId = ref.toString();
         }
         return cacheEntry;
@@ -36890,8 +36907,8 @@ exports.Type1Parser = Type1Parser;
 "use strict";
 
 
-var pdfjsVersion = '1.7.395';
-var pdfjsBuild = '07f7c97b';
+var pdfjsVersion = '1.7.397';
+var pdfjsBuild = '72eeb1cc';
 var pdfjsCoreWorker = __w_pdfjs_require__(8);
 {
   __w_pdfjs_require__(19);

Plik diff jest za duży
+ 0 - 0
build/pdf.worker.min.js


+ 22 - 5
lib/core/obj.js

@@ -38,6 +38,7 @@ var stringToUTF8String = sharedUtil.stringToUTF8String;
 var warn = sharedUtil.warn;
 var createValidAbsoluteUrl = sharedUtil.createValidAbsoluteUrl;
 var Util = sharedUtil.Util;
+var Dict = corePrimitives.Dict;
 var Ref = corePrimitives.Ref;
 var RefSet = corePrimitives.RefSet;
 var RefSetCache = corePrimitives.RefSetCache;
@@ -57,9 +58,10 @@ var Catalog = function CatalogClosure() {
     this.pdfManager = pdfManager;
     this.xref = xref;
     this.catDict = xref.getCatalogObj();
+    assert(isDict(this.catDict), 'catalog object is not a dictionary');
     this.fontCache = new RefSetCache();
     this.builtInCMapCache = Object.create(null);
-    assert(isDict(this.catDict), 'catalog object is not a dictionary');
+    this.pageKidsCountCache = new RefSetCache();
     this.pageFactory = pageFactory;
     this.pagePromises = [];
   }
@@ -375,6 +377,7 @@ var Catalog = function CatalogClosure() {
       return shadow(this, 'javaScript', javaScript);
     },
     cleanup: function Catalog_cleanup() {
+      this.pageKidsCountCache.clear();
       var promises = [];
       this.fontCache.forEach(function (promise) {
         promises.push(promise);
@@ -401,15 +404,25 @@ var Catalog = function CatalogClosure() {
     getPageDict: function Catalog_getPageDict(pageIndex) {
       var capability = createPromiseCapability();
       var nodesToVisit = [this.catDict.getRaw('Pages')];
-      var currentPageIndex = 0;
-      var xref = this.xref;
+      var count,
+          currentPageIndex = 0;
+      var xref = this.xref,
+          pageKidsCountCache = this.pageKidsCountCache;
       function next() {
         while (nodesToVisit.length) {
           var currentNode = nodesToVisit.pop();
           if (isRef(currentNode)) {
+            count = pageKidsCountCache.get(currentNode);
+            if (count > 0 && currentPageIndex + count < pageIndex) {
+              currentPageIndex += count;
+              continue;
+            }
             xref.fetchAsync(currentNode).then(function (obj) {
               if (isDict(obj, 'Page') || isDict(obj) && !obj.has('Kids')) {
                 if (pageIndex === currentPageIndex) {
+                  if (currentNode && !pageKidsCountCache.has(currentNode)) {
+                    pageKidsCountCache.put(currentNode, 1);
+                  }
                   capability.resolve([obj, currentNode]);
                 } else {
                   currentPageIndex++;
@@ -423,7 +436,11 @@ var Catalog = function CatalogClosure() {
             return;
           }
           assert(isDict(currentNode), 'page dictionary kid reference points to wrong type of object');
-          var count = currentNode.get('Count');
+          count = currentNode.get('Count');
+          var objId = currentNode.objId;
+          if (objId && !pageKidsCountCache.has(objId)) {
+            pageKidsCountCache.put(objId, count);
+          }
           if (currentPageIndex + count <= pageIndex) {
             currentPageIndex += count;
             continue;
@@ -1015,7 +1032,7 @@ var XRef = function XRefClosure() {
       var num = ref.num;
       if (num in this.cache) {
         var cacheEntry = this.cache[num];
-        if (isDict(cacheEntry) && !cacheEntry.objId) {
+        if (cacheEntry instanceof Dict && !cacheEntry.objId) {
           cacheEntry.objId = ref.toString();
         }
         return cacheEntry;

+ 2 - 2
lib/display/api.js

@@ -1372,8 +1372,8 @@ var _UnsupportedManager = function UnsupportedManagerClosure() {
     }
   };
 }();
-exports.version = '1.7.395';
-exports.build = '07f7c97b';
+exports.version = '1.7.397';
+exports.build = '72eeb1cc';
 exports.getDocument = getDocument;
 exports.PDFDataRangeTransport = PDFDataRangeTransport;
 exports.PDFWorker = PDFWorker;

+ 2 - 2
lib/display/global.js

@@ -31,8 +31,8 @@ if (!globalScope.PDFJS) {
   globalScope.PDFJS = {};
 }
 var PDFJS = globalScope.PDFJS;
-PDFJS.version = '1.7.395';
-PDFJS.build = '07f7c97b';
+PDFJS.version = '1.7.397';
+PDFJS.build = '72eeb1cc';
 PDFJS.pdfBug = false;
 if (PDFJS.verbosity !== undefined) {
   sharedUtil.setVerbosityLevel(PDFJS.verbosity);

+ 2 - 2
lib/pdf.js

@@ -14,8 +14,8 @@
  */
 'use strict';
 
-var pdfjsVersion = '1.7.395';
-var pdfjsBuild = '07f7c97b';
+var pdfjsVersion = '1.7.397';
+var pdfjsBuild = '72eeb1cc';
 var pdfjsSharedUtil = require('./shared/util.js');
 var pdfjsDisplayGlobal = require('./display/global.js');
 var pdfjsDisplayAPI = require('./display/api.js');

+ 2 - 2
lib/pdf.worker.js

@@ -14,8 +14,8 @@
  */
 'use strict';
 
-var pdfjsVersion = '1.7.395';
-var pdfjsBuild = '07f7c97b';
+var pdfjsVersion = '1.7.397';
+var pdfjsBuild = '72eeb1cc';
 var pdfjsCoreWorker = require('./core/worker.js');
 {
   require('./core/network.js');

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "pdfjs-dist",
-  "version": "1.7.395",
+  "version": "1.7.397",
   "main": "build/pdf.js",
   "description": "Generic build of Mozilla's PDF.js library.",
   "keywords": [

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików