1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-19 14:48:08 +02:00

Merge pull request #19321 from Snuffleupagus/issue-19319

Improve performance when reading very large TrueType "cmap" tables (issue 19319)
This commit is contained in:
Tim van der Meij 2025-01-13 20:21:14 +01:00 committed by GitHub
commit 61995e9e37
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 21 additions and 5 deletions

View file

@ -1760,17 +1760,22 @@ class Font {
mappings.sort(function (a, b) {
return a.charCode - b.charCode;
});
for (let i = 1; i < mappings.length; i++) {
if (mappings[i - 1].charCode === mappings[i].charCode) {
mappings.splice(i, 1);
i--;
const finalMappings = [],
seenCharCodes = new Set();
for (const map of mappings) {
const { charCode } = map;
if (seenCharCodes.has(charCode)) {
continue;
}
seenCharCodes.add(charCode);
finalMappings.push(map);
}
return {
platformId: potentialTable.platformId,
encodingId: potentialTable.encodingId,
mappings,
mappings: finalMappings,
hasShortCmap,
};
}

View file

@ -0,0 +1 @@
https://github.com/user-attachments/files/18396493/2023-ESG-report-eng.pdf

View file

@ -11254,5 +11254,15 @@
"rounds": 1,
"link": true,
"type": "other"
},
{
"id": "issue19319",
"file": "pdfs/issue19319.pdf",
"md5": "8612d3f0cf2dd067ea4aec9c8bf98763",
"rounds": 1,
"link": true,
"firstPage": 2,
"lastPage": 2,
"type": "eq"
}
]