Merge pull request #5219 from Snuffleupagus/sanitizeMetrics-avoid-intermediate-strings
Avoid creating intermediate strings in sanitizeMetrics
This commit is contained in:
commit
4834f1c289
@ -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…
x
Reference in New Issue
Block a user