]> git.parisson.com Git - pdf.js.git/commitdiff
Fix tests failure by cloning the GlyphsUnicode object
authorVivien Nicolas <21@vingtetun.org>
Thu, 22 Sep 2011 11:39:28 +0000 (13:39 +0200)
committerVivien Nicolas <21@vingtetun.org>
Thu, 22 Sep 2011 11:39:28 +0000 (13:39 +0200)
fonts.js
pdf.js

index 60ad67a52521daa72ac6b7d23cdd2c41385c97b1..e5cce0b4fb05bbfe7aae0079d3873c77f0e17b76 100644 (file)
--- a/fonts.js
+++ b/fonts.js
@@ -447,13 +447,14 @@ var Font = (function Font() {
     }
 
     var data;
-    switch (properties.type) {
+    var type = properties.type;
+    switch (type) {
       case 'Type1':
       case 'CIDFontType0':
         this.mimetype = 'font/opentype';
 
         var subtype = properties.subtype;
-        var cff = (subtype == 'Type1C' || properties.type == 'CIDFontType0') ?
+        var cff = (subtype == 'Type1C' || subtype == 'CIDFontType0C') ?
           new Type2CFF(file, properties) : new CFF(name, file, properties);
 
         // Wrap the CFF data inside an OTF font file
@@ -475,7 +476,7 @@ var Font = (function Font() {
     }
 
     this.data = data;
-    this.type = properties.type;
+    this.type = type;
     this.textMatrix = properties.textMatrix;
     this.defaultWidth = properties.defaultWidth;
     this.loadedName = getUniqueName();
@@ -2522,8 +2523,8 @@ var Type2CFF = (function() {
 
       if (pos == 0 || pos == 1) {
         var gid = 1;
-        var baseEncoding =
-          pos ? Encodings.ExpertEncoding : Encodings.StandardEncoding;
+        var baseEncoding = pos ? Encodings.ExpertEncoding.slice() :
+                                 Encodings.StandardEncoding.slice();
         for (var i = 0; i < charset.length; i++) {
           var index = baseEncoding.indexOf(charset[i]);
           if (index != -1)
@@ -2569,11 +2570,11 @@ var Type2CFF = (function() {
 
     parseCharsets: function cff_parsecharsets(pos, length, strings) {
       if (pos == 0) {
-        return ISOAdobeCharset;
+        return ISOAdobeCharset.slice();
       } else if (pos == 1) {
-        return ExpertCharset;
+        return ExpertCharset.slice();
       } else if (pos == 2) {
-        return ExpertSubsetCharset;
+        return ExpertSubsetCharset.slice();
       }
 
       var bytes = this.bytes;
diff --git a/pdf.js b/pdf.js
index 1a5bf48547df69c54f206bb39ac83748d7c3996e..1b80424d65997bcec4cfad1787c78f5d18760a90 100644 (file)
--- a/pdf.js
+++ b/pdf.js
@@ -4280,8 +4280,9 @@ var PartialEvaluator = (function partialEvaluator() {
           properties.widths = glyphsWidths;
 
           var cidToGidMap = dict.get('CIDToGIDMap');
-          if (!cidToGidMap || !IsRef(cidToGidMap))
-            return GlyphsUnicode;
+          if (!cidToGidMap || !IsRef(cidToGidMap)) {
+            return Object.create(GlyphsUnicode);
+          }
 
           // Extract the encoding from the CIDToGIDMap
           var glyphsStream = xref.fetchIfRef(cidToGidMap);
@@ -4318,7 +4319,7 @@ var PartialEvaluator = (function partialEvaluator() {
                  '9.7.5.3');
           }
         }
-        return GlyphsUnicode;
+        return Object.create(GlyphsUnicode);
       }
 
       var differences = properties.differences;
@@ -4494,7 +4495,7 @@ var PartialEvaluator = (function partialEvaluator() {
       var map = {};
       if (/^Symbol(-?(Bold|Italic))*$/.test(name)) {
         // special case for symbols
-        var encoding = Encodings.symbolsEncoding;
+        var encoding = Encodings.symbolsEncoding.slice();
         for (var i = 0, n = encoding.length, j; i < n; i++) {
           if (!(j = encoding[i]))
             continue;