Browse Source

Merge pull request #5219 from Snuffleupagus/sanitizeMetrics-avoid-intermediate-strings

Avoid creating intermediate strings in sanitizeMetrics
Yury Delendik 11 years ago
parent
commit
4834f1c289
  1. 14
      src/core/fonts.js

14
src/core/fonts.js

@ -3297,16 +3297,12 @@ var Font = (function FontClosure() {
var numMissing = numOfSidebearings - var numMissing = numOfSidebearings -
((metrics.length - numOfMetrics * 4) >> 1); ((metrics.length - numOfMetrics * 4) >> 1);
var i, ii;
if (numMissing > 0) { if (numMissing > 0) {
font.pos = (font.start ? font.start : 0) + metrics.offset; // For each missing glyph, we set both the width and lsb to 0 (zero).
var entries = ''; // Since we need to add two properties for each glyph, this explains
for (i = 0, ii = metrics.length; i < ii; i++) { // the use of |numMissing * 2| when initializing the typed array.
entries += String.fromCharCode(font.getByte()); var entries = new Uint8Array(metrics.length + numMissing * 2);
} entries.set(metrics.data);
for (i = 0; i < numMissing; i++) {
entries += '\x00\x00';
}
metrics.data = entries; metrics.data = entries;
} }
} }

Loading…
Cancel
Save