Merge pull request #15586 from Snuffleupagus/rm-matchesForCache

Remove the `Glyph.matchesForCache` method (PR 13494 follow-up)
This commit is contained in:
Jonas Jenwald 2022-10-20 10:35:00 +02:00 committed by GitHub
commit 36967fcedb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -218,30 +218,6 @@ class Glyph {
this.isZeroWidthDiacritic = category.isZeroWidthDiacritic; this.isZeroWidthDiacritic = category.isZeroWidthDiacritic;
this.isInvisibleFormatMark = category.isInvisibleFormatMark; this.isInvisibleFormatMark = category.isInvisibleFormatMark;
} }
matchesForCache(
originalCharCode,
fontChar,
unicode,
accent,
width,
vmetric,
operatorListId,
isSpace,
isInFont
) {
return (
this.originalCharCode === originalCharCode &&
this.fontChar === fontChar &&
this.unicode === unicode &&
this.accent === accent &&
this.width === width &&
this.vmetric === vmetric &&
this.operatorListId === operatorListId &&
this.isSpace === isSpace &&
this.isInFont === isInFont
);
}
} }
function int16(b0, b1) { function int16(b0, b1) {
@ -3249,6 +3225,12 @@ class Font {
* @private * @private
*/ */
_charToGlyph(charcode, isSpace = false) { _charToGlyph(charcode, isSpace = false) {
let glyph = this._glyphCache[charcode];
// All `Glyph`-properties, except `isSpace` in multi-byte strings,
// depend indirectly on the `charcode`.
if (glyph && glyph.isSpace === isSpace) {
return glyph;
}
let fontCharCode, width, operatorListId; let fontCharCode, width, operatorListId;
let widthCode = charcode; let widthCode = charcode;
@ -3313,35 +3295,18 @@ class Font {
} }
} }
let glyph = this._glyphCache[charcode]; glyph = new Glyph(
if ( charcode,
!glyph || fontChar,
!glyph.matchesForCache( unicode,
charcode, accent,
fontChar, width,
unicode, vmetric,
accent, operatorListId,
width, isSpace,
vmetric, isInFont
operatorListId, );
isSpace, return (this._glyphCache[charcode] = glyph);
isInFont
)
) {
glyph = new Glyph(
charcode,
fontChar,
unicode,
accent,
width,
vmetric,
operatorListId,
isSpace,
isInFont
);
this._glyphCache[charcode] = glyph;
}
return glyph;
} }
charsToGlyphs(chars) { charsToGlyphs(chars) {