The FreeType Project - Bugs: bug #54081, Possible byte code interpreter...
You are not allowed to post comments on this tracker with your current authentication level.
bug #54081: Possible byte code interpreter problem with subset font
Submitter: | John Tytgat <joty> | ||
Submitted: | Thu 07 Jun 2018 03:28:06 PM UTC | ||
Severity: | 3 - Normal | Item Group: | None |
Status: | Invalid | Privacy: | Public |
Assigned to: | wl | Open/Closed: | Closed |
Planned Release: | None |
Thu 21 Jun 2018 06:26:22 AM UTC, comment #1: |
Werner LEMBERG <wl> |
Thu 07 Jun 2018 03:28:06 PM UTC, original submission:
Attached:
|
John Tytgat <joty> |
Depends on the following items: None found
Items that depend on this one: None found
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
Follow 6 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2018-06-21 | wl | Status | None | Invalid | |
Assigned to | None | wl | |||
Open/Closed | Open | Closed | |||
2018-06-07 | joty | Attached File | - | Added FiraSans-Regular.ttf, #44322 | |
Attached File | - | Added LICENSE, #44323 | |||
Attached File | - | Added FiraSans-Regular_subset.ttf, #44324 |
Powered by Savane 3.13-d3ae.
Corresponding source code
The bytecode in the full font is generated by ttfautohint. The subsetted bytecode in `prep' is completely different; it causes an endless loop. So yes, the bytecode of the subsetted font is buggy.
Looking into the `name' table it seems that the subsetted font is based on an older version of FiraSans-Regular (the copyright years are different) – I guess that this older version wasn't hinted by ttfautohint.
There was a bug in the `glyphs' font editor: It sometimes dumped arbitrary bytecode into the `prep' table (and possibly `fpgm' also) if no glyph in the font uses bytecode. Apparently, on Windows the `prep' table gets only loaded on demand if the interpreter has to execute the bytecode of a glyph, which means that such a broken `prep' table doesn't matter if no glyph contains bytecode. With FreeType, however, the `prep' table gets always executed if it is present. Maybe this is the reason of the problem.
My conclusion: Not a FreeType problem, thus closing as invalid.