1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-22 16:18:08 +02:00

Merge pull request #18018 from Snuffleupagus/CompiledFont-tweak-caching

Reduce code-duplication when caching data in `CompiledFont.getPathJs`
This commit is contained in:
Jonas Jenwald 2024-04-29 17:39:35 +02:00 committed by GitHub
commit 2b2ade7883
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -780,25 +780,22 @@ class CompiledFont {
getPathJs(unicode) {
const { charCode, glyphId } = lookupCmap(this.cmap, unicode);
let fn = this.compiledGlyphs[glyphId];
let fn = this.compiledGlyphs[glyphId],
compileEx;
if (!fn) {
try {
fn = this.compiledGlyphs[glyphId] = this.compileGlyph(
this.glyphs[glyphId],
glyphId
);
fn = this.compileGlyph(this.glyphs[glyphId], glyphId);
} catch (ex) {
// Avoid attempting to re-compile a corrupt glyph.
this.compiledGlyphs[glyphId] = NOOP;
fn = NOOP; // Avoid attempting to re-compile a corrupt glyph.
if (this.compiledCharCodeToGlyphId[charCode] === undefined) {
this.compiledCharCodeToGlyphId[charCode] = glyphId;
}
throw ex;
compileEx = ex;
}
this.compiledGlyphs[glyphId] = fn;
}
if (this.compiledCharCodeToGlyphId[charCode] === undefined) {
this.compiledCharCodeToGlyphId[charCode] = glyphId;
this.compiledCharCodeToGlyphId[charCode] ??= glyphId;
if (compileEx) {
throw compileEx;
}
return fn;
}