]> git.parisson.com Git - pdf.js.git/commitdiff
simplify glyph segment writing code
authorAndreas Gal <andreas.gal@gmail.com>
Mon, 20 Jun 2011 08:16:41 +0000 (04:16 -0400)
committerAndreas Gal <andreas.gal@gmail.com>
Mon, 20 Jun 2011 08:16:41 +0000 (04:16 -0400)
fonts.js

index 73d42d8beb2c412b6897bb8916389a26b1055d9f..abdd71db9edfecebe345986758ec6129718b2b4b 100644 (file)
--- a/fonts.js
+++ b/fonts.js
@@ -368,23 +368,21 @@ var Font = (function () {
         var bias = 0;
         for (var i = 0; i < segCount - 1; i++) {
           var range = ranges[i];
-          var start = FontsUtils.integerToBytes(range[0], 2);
-          var end = FontsUtils.integerToBytes(range[1], 2);
+          var start = range[0];
+          var end = range[1];
+          var delta = (((start - 1) - bias) ^ 0xffff) + 1;
+          bias += (end - start + 1);
 
-          var delta = FontsUtils.integerToBytes(((range[0] - 1) - bias) % 65536, 2);
-          bias += (range[1] - range[0] + 1);
-
-          // deltas are signed shorts
-          delta[0] ^= 0xFF;
-          delta[1] ^= 0xFF;
-          delta[1] += 1;
+          var start = FontsUtils.integerToBytes(start, 2);
+          var end = FontsUtils.integerToBytes(end, 2);
+          var delta = FontsUtils.integerToBytes(delta, 2);
 
           startCount.push(start[0], start[1]);
           endCount.push(end[0], end[1]);
           idDeltas.push(delta[0], delta[1]);
           idRangeOffsets.push(0x00, 0x00);
 
-          for (var j = range[0]; j <= range[1]; j++)
+          for (var j = start; j <= end; j++)
             glyphsIdsArray.push(j);
         }
         startCount.push(0xFF, 0xFF);