Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 32cb5390 | 2025-09-06 06:14:03 | Update all copyright notices. | ||
| b04db387 | 2025-07-04 19:52:53 | [sfnt] Rewrite GPOS kerning support. (2/2) The previous code had a fundamental flaw: it didn't validate the necessary parts of the 'GPOS' table before accessing it, causing crashes with malformed data (since `TT_CONFIG_OPTION_GPOS_KERNING` is off by default, standard fuzzers don't catch these problems). Additionally, it did a lot of parsing while accessing kerning data, making it rather slow. The new implementation fixes this. After validation, offsets to the 'GPOS' lookup subtables used in the 'kern' feature that correspond to 'simple' kerning (i.e., similar to 'kern' table kerning) are stored in `TT_Face`; this greatly simplifies and accelerates access to the kerning data. Testing with font `SF-Pro.ttf` version '1.00', the validation time for the 'GPOS' table increases the start-up time of `FT_New_Face` by less than 1%, while calls to `FT_Get_Kerning` become about 3.5 times faster. * include/freetype/internal (gpos_kerning_available): Replace with... (gpos_lookups_kerning, num_gpos_lookups_kerning): ... these new fields. Update callers. * src/ttgpos.c [TT_CONFIG_OPTION_GPOS_KERNING]: A new implementation. | ||
| ecbc1abf | 2025-07-04 06:12:34 | [cff] Support GPOS kerning. * src/cff/cffdrivr.c (cff_get_kerning) [TT_CONFIG_OPTION_GPOS_KERNING]: Add code similar to the one in `tt_get_kerning`. | ||
| 8d82c9fa | 2025-07-01 17:08:37 | */*: Fix trivial signedness issues with format strings in trace messages. As reported with clang 19's `-Wformat` option. | ||
| c1278179 | 2025-05-07 17:57:42 | * src/cff/cffgload.c (cff_slot_load): Fix autohinter scaling. Fixes #1330. | ||
| 73318c86 | 2025-01-08 15:45:32 | [cff] Remove size/slot checks. After the previous commit, cff_glyph_load is no longer called without first checking for valid size and glyph objects in FT_Glyph_Load and these checks can be removed downstream. * src/cff/cffdrivr.c (cff_glyph_load): Remove `size` and `glyph` checks. * src/cff/cffgload.c (cff_slot_load): Ditto. | ||
| c7a255b4 | 2025-01-07 19:52:29 | * src/cff/cffdrivr.c (cff_get_advances): Do only fast advances. Otherwise, let TT_Get_Advances fall back on cff_load_glyph to do slow advances. This avoids unchecked access to cff_load_glyph and this is how tt_get_advances is implemented. | ||
| 5245fd69 | 2025-01-03 21:26:10 | Delay FT_GLYPH_FORMAT_OUTLINE assignmets. This assignmets used to be done prematurely before errors were checked and outlines were actually loaded. Delaying the assignment provides certain protection against careless usage of malformed input that should now remain FT_GLYPH_FORMAT_NONE. * src/cff/cffgload.c (cff_slot_load): Ditto. * src/cid/cidgload.c (cid_slot_load_glyph): Ditto. * src/pfr/pfrobjs.c (pfr_slot_load): Ditto. * src/truetype/ttgload.c (TT_Load_Glyph): Ditto. * src/type1/t1gload.c (T1_Load_Glyph): Ditto. | ||
| 64f8b7fb | 2025-01-02 18:22:24 | Remove superfluous outline zeroing. This is already done by `ft_glyphslot_clear`. * src/cff/cffgload.c (cff_slot_load): Do not zero outline fields. * src/cid/cidgload.c (cid_slot_load_glyph: Ditto. * src/pfr/pfrobjs.c (pfr_slot_load): Ditto. * src/truetype/ttgload.c (load_sbit_image): Ditto. * src/type1/t1gload.c (T1_Load_Glyph): Ditto. | ||
| 59320b2d | 2024-12-04 16:55:10 | [cff] Fix leak of cmap data When `sfnt->load_face` succeeds it has already loaded any (optional) cmap data. As a result, a subsequent call to `sfnt->load_cmap` will overwrite the cmap data pointer with a new copy of the data but not free the old, leading to a leak. This is a fix for "* src/cff/cffobjs.c (cff_face_init): Better handling of Type0 fonts.". This still allows the cmap to be missing but avoids the leak by only calling `sfnt->load_cmap` when there is no `head` table (the font data is not being loaded as OpenType/CFF). * src/cff/cffobjs.c (cff_face_init): Fix leak Fixes: #1306 |