Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 3ce99005 | 2025-04-26 09:42:44 | * src/autofit/afranges.c: Updated to Unicode 16.0. But no support for new scripts (volunteers welcomed). | ||
| 08a13fe2 | 2025-04-26 08:31:17 | * src/autofit/afranges.c: Updated to Unicode 15.1. But no support for new scripts (volunteers welcomed). | ||
| 3019fa6c | 2025-04-26 08:09:15 | * src/autofit/afranges.c: Updated to Unicode 14.0. But no support for new scripts (volunteers welcomed). | ||
| 373aa744 | 2025-04-26 07:39:27 | * src/autofit/afranges.c: Updated to Unicode 13.0. But no support for new scripts (volunteers welcomed). | ||
| 12a9f65d | 2025-04-26 07:26:34 | * src/autofit/afranges.c: Updated to Unicode 12.0. But no support for new scripts (volunteers welcomed). | ||
| 1019b1c2 | 2025-04-22 06:20:22 | * src/autofit/afadjust.c (af_get_glyph_alternates): Fix endless loop. | ||
| b5b3fd57 | 2025-04-20 10:48:54 | * src/afadjust.c: Fix test for newer HarfBuzz version (second try). | ||
| 05f3cf13 | 2025-04-20 10:29:32 | * src/afadjust.c: Fix test for newer HarfBuzz version. | ||
| a64b49cc | 2025-04-20 08:00:26 | [autofit] Request at least HarfBuzz 7.2.0 for diacritic support. (3/3) This version (from April 2023) added 'SingleSubst' support to `hb_ot_layout_lookup_get_glyph_alternates`. | ||
| de98b1ba | 2025-04-20 07:32:05 | [autofit] Speed up creation of the adjustment database's reverse map. (2/3) Remove the old code and activate the new one. | ||
| 573201be | 2025-04-20 06:27:52 | [autofit] Speed up creation of the adjustment database's reverse map. (1/3) As it turns out, the original implementation using `hb_ot_shape_glyphs_closure` is extremely slow if a font has a rich set of OpenType features. For example, this function was called 66954 times while loading font `arial.ttf` version 7.00, increasing FreeType's startup time by a factor of 10, which is unacceptable. The new algorithm uses a completely different, more low-level approach, no longer working with OpenType features but with OpenType lookups. It relies on function `hb_ot_layout_lookup_get_glyph_alternates`, also replacing recursion with a simple loop. In total, this brings the additional startup time back to an acceptable range of a few percent. A side effect of the new approach is that it catches more alternate forms: the old code didn't properly handle script-specific features. To make the change more readable, this commit only adds new code. | ||
| 9536e472 | 2025-04-18 06:31:51 | * src/autofit/afadjust.c (af_reverse_character_map_new): Check `map` limit. Reported as https://issues.chromium.org/issues/410925355 | ||
| d6c29228 | 2025-04-17 19:36:51 | [autofit] Don't access uninitialized memory. Reported as https://bugs.ghostscript.com/show_bug.cgi?id=708295 * src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments): Initialize all array elements of `contour_y_minima` and `contour_y_maxima`. | ||
| cc849c32 | 2025-04-16 19:39:02 | [autofit] Avoid crash. Reported as https://issues.oss-fuzz.com/issues/410811029 * src/autofit/aflatin.c (af_remove_segments_containing_point): Check `edge->last`. | ||
| dc55f4e6 | 2025-04-14 21:03:08 | [autofit] Avoid unnecessary recomputation of HarfBuzz data. Call the functions once per font instead of once per glyph. * src/autofit/afadjust.c (af_all_glyph_variants): Move code to compute the `feature_tags` and `type_3_lookup_indices` sets to... (af_reverse_character_map_new): ...this function. | ||
| d1ac9524 | 2025-04-14 15:48:33 | [autofit] Fix creation of the adjustment database's reverse map. Due to the way the reverse map array gets constructed with HarfBuzz, there might be multiple, identical glyph index entries with different character values in the array. As an example, an OpenType feature like 'unic' might map lowercase glyph 'ae' to uppercase glyph 'AE', in addition to the already present cmap entry for 'AE'. In most cases, this incorrect mapping is harmless (but still wrong). However, there exist some lowercase/uppercase character pairs where the diacritic for the uppercase character is on the other vertical side of the base character as for the lowercase character. An example is U+0122 (LATIN CAPITAL LETTER G WITH CEDILLA) and U+0123 (LATIN SMALL LETTER G WITH CEDILLA): the former has the cedilla below, the latter above. A wrong mapping would thus shift the base glyph 'G' up by a pixel instead of shifting the cedilla down. We fix this by always giving precedence to cmap entries. * src/autofit/afadjust.c (af_reverse_character_map_entry_compare): Do a secondary sort on the character code. (af_reverse_character_map_lookup): Adjust binary search to return the first occurrence of an entry (i.e., the one with the lowest array index). (af_reverse_character_map_new)[FT_CONFIG_OPTION_USE_HARFBUZZ]: Implement cmap priority. | ||
| 05797069 | 2025-04-14 09:22:10 | [autofit] Reduce adjustment database lookups. This is also in preparation for a follow-up commit. * src/autofit/afadjust.h (af_lookup_vertical_separation_type, af_lookup_tilde_correction_type): Replaced with... (af_adjustment_database_lookup, af_reverse_character_map_lookup): ... this. * src/autofit/afadjust.c (af_adjustment_database_lookup, af_adjustment_database_lookup): Updated. (af_lookup_vertical_separation_type, af_lookup_tilde_correction_type): Removed. (af_reverse_character_map_new)[FT_DEBUG_LEVEL_TRACE]: Updated. * src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments, af_latin_hints_apply): Updated. | ||
| 233cdea8 | 2025-04-12 10:32:44 | * src/afadjust.c (adjustment_database): Make it complete up to U+017F. | ||
| 535498a0 | 2025-04-13 22:11:39 | * src/autofit/afadjust.c (af_reverse_character_map_new): Add tracing code. | ||
| c34e551c | 2025-04-12 07:38:43 | * src/afadjust.c: Minor fixes. | ||
| 218c59a2 | 2025-04-11 07:38:03 | [autofit] Better vertical separation adjustment support. (2/2) * src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments): Handle diacritics with more than a single contour. | ||
| 52d4573e | 2025-04-11 07:30:55 | [autofit] Better vertical separation adjustment support. (1/2) Test vertical maxima instead of vertical minima to identify the highest contour (and vice versa to identify the lowest contour). Doing so will allow support of diacritics that consist of more than a single outline. This works because of the topological constraints ensured by the adjustment database. * src/autofit/aflatin.c (af_find_highest_contour, af_glyph_hints_apply_vertical_separation_adjustments): Implement it. | ||
| c6106cff | 2025-04-10 14:05:14 | [autofit] Use new y extrema arrays. * src/autofit/aflatin.c (af_glyph_hints_apply_vertical_separation_adjustments): Implement it. | ||
| 8d49ccd6 | 2025-04-10 09:44:58 | [autofit] Provide infrastructure for storing y extrema of contours. We need this for better positioning support of diacritics. * src/autofit/afhints.h (AF_GlyphHintsRec): New fields `contour_y_minima` and `contour_y_maxima`, together with its embedded variants. * src/autofit/afhints.c (af_glyph_hints_done, af_glyph_hints_reload): Handle new arrays. | ||
| 53a5e2e6 | 2025-04-15 06:58:52 | [autofit] Avoid crash. Reported as https://issues.oss-fuzz.com/issues/410609442 * src/autofit/aflatin.c (af_remove_segments_containing_point): Check `edge`. | ||
| 558bde6e | 2025-04-14 21:37:18 | [autofit] Fix just introduced heap buffer overflow Reported as https://issues.oss-fuzz.com/issues/410393975 * src/autofit/afadjust.c [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Synchronize with HarfBuzz code. | ||
| 24ac6c5d | 2024-01-29 08:37:54 | [autofit] Add GSUB table handling to reverse character map generation. If HarfBuzz is enabled, the reverse character map generation now considers GSUB entries when looking for glyphs that correspond to a code point. * src/autofit/afadjust.c (af_all_glyph_variants_helper, af_all_glyph_variants) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New functions. (af_reverse_character_map_new) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call new code. | ||
| 771449f1 | 2024-01-29 08:32:21 | [autofit] Add tilde-unflattening algorithm. * src/autofit/aflatin.c (af_find_highest_contour, af_remove_segments_containing_point, af_latin_remove_tilde_points_from_edges, af_latin_stretch_tilde, af_latin_align_tilde): New functions. (af_latin_hints_apply): Call tilde-unflatting code if necessary. | ||
| 7099b09e | 2024-01-29 08:21:09 | [autofit] Implement vertical separation adjustment. * src/autofit/aflatin.c: Include `afadjust.h`. (af_latin_metrics_init): Call `af_reverse_character_map_new`. (af_latin_metrics_done): New function. (af_move_contour_vertically, af_check_contour_horizontal_overlap, af_glyph_hints_apply_vertical_separation_adjustments): New functions. (af_latin_hints_apply): Call `af_glyph_hints_apply_vertical_separation_adjustments`. (af_latin_writing_system_class): Updated. * src/autofit/aftypes.h (AF_StyleMetricsRec): Add `reverse_charmap` field. | ||
| 14ac6140 | 2024-01-28 17:35:15 | [autofit] Add code for reverse charmaps and adjustment database lookup. * src/autofit/aftypes.h (AF_ReverseMapEntry, AF_ReverseCharacterMap): New structures. * src/autofit/afadjust.c (af_adjustment_database_lookup, af_reverse_character_map_entry_compare, af_reverse_character_map_lookup, af_lookup_vertical_separation_type, af_lookup_tilde_correction_type, af_reverse_character_map_expand, af_reverse_character_map_new, af_reverse_character_map_done): New functions. * src/autofit/afadjust.c: Updated. | ||
| c46ebd76 | 2024-01-28 17:27:39 | [autofit] Add adjustment database. * src/autofit/afadjust.c, src/autofit/afadjust.h: New files. * include/freetype/internal/fttrace.h: Add 'afadjust' component. * src/autofit/autofit.c: Include `afadjust.c`. * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afadjust.c`. | ||
| f92c9655 | 2024-08-13 23:29:13 | Fix various typos. | ||
| d42bffd4 | 2024-07-28 20:32:41 | * src/autofit/afmodule.c (af_autofitter_load_glyph): Shorten deref. | ||
| 044d142b | 2024-06-20 22:16:51 | Use unsigned tags `FT_Outline`. This change comes along with 2a7bb4596f56 ans is only meant to reduce pointer casting in the code. * include/freetype/ftimage.h (FT_Outline): Do it. * src/*: Update `FT_Outline` users. | ||
| 2a7bb459 | 2024-06-20 20:49:56 | Use unsigned point and contour indexing in `FT_Outline`. This doubles the number or allowed points, see https://github.com/harfbuzz/harfbuzz/issues/4752 Although it is hardly practical to use more than 32767 points, other font engines seem to support it. * docs/CHANGES: Announce it. * include/freetype/ftimage.h (FT_Outline): Do it and update limits. * src/*: Update `FT_Outline` users. | ||
| 93a067e3 | 2024-06-18 17:48:41 | [base, autofit, psaux] Remove unnecessary casting. * src/autofit/afhints.c (af_glyph_hints_reload): Remove (short) casting. * src/base/ftgloadr.c (FT_GlyphLoader_Add): Ditto. * src/psaux/psobjs.c ({t1,cff,ps}_builder_{add,close}_contour): Ditto. | ||
| 2edfd7e1 | 2024-05-04 16:42:47 | * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Remove FT_ABS. See https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=68679 | ||
| 47574f7e | 2024-01-27 11:11:22 | Update all copyright notices. | ||
| 45903920 | 2023-09-05 08:07:17 | [autofit] Fix synchronization mistake between FreeType and ttfautohint. Found by Behdad. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix array size of `blue_sorted`: FreeType doesn't have artificial blue zones. | ||
| ad201739 | 2023-09-04 19:22:43 | [autofit] Fix typos. This also reduces the used heap size by a large factor. From Behdad. * src/autofit/afcjk.h (AF_CJKAxisRec): Use `AF_BLUE_STRINGSET_MAX_LEN`. * src/autofit/aflatin.h (AF_LatinAxisRec): Ditto. | ||
| a20de84e | 2023-08-12 11:47:41 | Fix warnings in tracing messages for 32bit compilation. Since we now require C99, use `%td` for `ptrdiff_t` and `%zu` for `size_t`. | ||
| 7bed7a02 | 2023-06-01 21:05:32 | Fix some `FT_Fixed` vs. `FT_Long` confusion. `FT_Fixed` and `FT_Long` are both typedef'ed to be `signed long`. However, `FT_Fixed` implies that the lower 16 bits are being used to express fractional values and so these two types should not be confused. * include/freetype/internal/services/svmm.h (FT_Set_MM_Blend_Func): Use `FT_Fixed` for `coords`. Users are passing `FT_Fixed` and implementations are taking `FT_Fixed`. (FT_Get_MM_Blend_Func): Ditto. * src/autofit/afcjk.c (af_cjk_metrics_check_digits): Use `FT_Long` for `advance` and `old_advance`. `advance`'s address is passed as `FT_Long*` to `af_shaper_get_elem`, which writes the advance in em units (not fixed). The exact value is not important here as it is only compared to check whether it has changed. * src/autofit/aflatin.c (af_latin_metrics_check_digits): Ditto. | ||
| 2fb8eda5 | 2023-06-01 19:38:36 | */*: Remove many function pointer casts. In C it is undefined behavior to call a function through a function pointer of a different type. This is now detected by the Control Flow Integrity Sanitizer. All known issues have already been fixed. Prevent any accidental re-introduction by removing function pointer casts when defining services. The services will call the service functions through the function pointers on the service. As a result the functions must have the same type so there should be no need to cast. Removing the casts allows compilers to warn about assignment to an incompatible function pointer type. | ||
| 80a507a6 | 2023-05-23 13:13:56 | Replace `sprintf` with `snprintf`. Fixes #1233. * include/freetype/config/ftstdlib.h (ft_sprintf): Replace with... (ft_snprintf): This new macro. * src/autofit/afhints.c (af_print_idx): Add argument to pass the buffer size. (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Updated. * src/bdf/bdflib.c (BUFSIZE): New macro. (bdf_parse_properties_, bdf_parse_start_): Use `ft_snprintf`. * src/tools/ftrandom/ftrandom.c (do_test): Use `snprintf`. | ||
| 5edd6d52 | 2023-05-08 07:22:59 | Minor compiler warning fixes. * src/autofit/afcjk.c (af_cjk_get_standard_widths), src/autofit/aflatin.c (af_latin_get_standard_widths): Use `FT_CALLBACK_DEF`. * src/cff/cffparse.c (cff_parser_run): Initialize and fix allocation of `q`. | ||
| 274e0dd5 | 2023-05-07 19:54:46 | [autofit] Signature fixes. | ||
| cfe54d6a | 2023-04-26 13:15:57 | s/this is,/that is,/ | ||
| d399657f | 2023-02-26 20:18:54 | * src/*: Replace leading underscores with trailing ones in dummy variables. This is to avoid clang warnings. | ||
| 7f949904 | 2023-02-20 23:29:58 | [autofit] Clean up contour indexing. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Refactor. * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Ditto. | ||
| 995ccfac | 2023-02-08 21:49:56 | [autofit] Fix 'multi' compilation. * src/autofit/ft-hb.c: Decorate with `FT_LOCAL_DEF`. Add ANSI boilerplate code for otherwise empty file. * src/autofit/ft-hb.h: Include `compiler-macros.h` and `freetype.h`. Use `FT_BEGIN_HEADER` and `FT_END_HEADER`. Decorate with `FT_LOCAL`. * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `ft-hb.c`. | ||
| 663486a7 | 2023-02-08 20:56:19 | Fix `FT_LOCAL` and `FT_LOCAL_DEF` tags. | ||
| be724c81 | 2023-02-07 22:24:53 | For debugging, avoid implicit conversion from integer to double. Otherwise we get zillions of clang 15 warnings. * src/autofit/afcjk.c, src/autofit/afhints.c, src/autofit/aflatin.c, src/base/ftobjs.c, src/base/ftoutln.c, src/cff/cffparse.c, src/raster/ftraster.c, src/sfnt/pngshim.c, src/truetype/ttgload.c, src/truetype/ttgxvar.c, src/truetype/ttobjs.c, src/type1/t1gload.c: Use `double` cast in debugging and tracing macros. | ||
| 37bc7c26 | 2023-02-07 07:37:07 | Avoid reserved identifiers that are globally defined. This is mandated by the C99 standard, and clang 15 produces zillions of warnings otherwise. * devel/ftoption.h, include/freetype/config/ftoption.h, include/freetype/internal/ftmemory.h, src/autofit/afhints.h, src/autofit/afmodule.c, src/autofit/aftypes.h, src/base/ftadvanc.c, src/base/ftdbgmem.c, src/base/ftstream.c, src/bdf/bdflib.c, src/truetype/ttinterp.c: Replace identifiers of the form `_foo` with `foo_`. | ||
| 65f85237 | 2023-01-17 09:18:25 | Update all copyright notices. | ||
| 6a179ff7 | 2023-01-16 16:38:56 | sr/*.c: Various minor fixes. * src/autofit/ft-hb.c (_hb_ft_reference_table): Call `FT_UNUSED` after variable declarations. * src/gxvalid/gxvjust.c (gxv_just_widthDeltaClusters_validate): Eliminate unused variable. * src/gzip/ftgzip.c: Don't call GCC '-Wstrict-prototypes' pragma for C++ compiler. * src/sfnt/ttcolr.c (ENSURE_READ_BYTES): Remove final semicolon to avoid compiler warning. * src/sfnt/ttsvg.c (tt_face_load_svg_doc): Fix signedness warning. | ||
| b1c90733 | 2023-01-07 07:40:12 | * src/autofit/ft-hb.c (_hb_ft_reference_table): Minor integration fixes. | ||
| ebe7e912 | 2023-01-02 20:13:22 | [autofit] Don't depend on 'hb-ft'. The circular dependency is still there, but at least we no longer depend on the HarfBuzz API that is only present if HarfBuzz has been built with FreeType support, making the bootstrapping a bit easier. * src/autofit/ft-hb.c, src/autofit/ft-hb.h: New files, providing `_hb_ft_font_create`, which is more or less a verbatim copy of the corresponding HarfBuzz code from file `hb-ft.cc`. * src/autofit/afglobal.c (af_face_globals_new): Use it. * src/autofit/afshaper.h: Don't include `hb-ft.h` but `ft-hb.h`. * src/autofit/autofit.c: Include `ft-hb.c`. * LICENSE.TXT: Updated. | ||
| 1c44de20 | 2022-11-20 22:37:08 | * src/autofit/afloader.c (af_loader_load_glyph): Remove `size` check. This is done by `FT_Load_Glyph`. | ||
| 0f43a0e7 | 2022-11-16 07:50:52 | * src/autofit/afloader.c (af_loader_load_glyph): Fix dereference. This must happen after the NULL check. Taken from https://github.com/freetype/freetype/pull/2 | ||
| dea2e635 | 2022-10-24 06:59:45 | Replace '1/64th' (and similar entries) with '1/64' in docs and comments. | ||
| 0417527d | 2022-10-03 19:23:26 | [autofit] Reset the face charmap directly. There is no need to validate the original charmap in `FT_Set_Charmap`. It can be reset directly. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Use direct assignment. * src/autofit/af{latin,cjk,indic}.c (af_latin_metrics_init): Ditto. | ||
| 048f2e24 | 2022-09-05 10:43:59 | [autofit] Minor fix. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Avoid compiler warning. | ||
| a18ad83e | 2022-08-01 13:20:13 | [autofit] Updated to reduce casting (cont'd). * src/autofit/afmodule.h (AF_ModuleRec): Change `default_script` type. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Remove casting. * src/autofit/afmodule.c (af_property_{set,get}): Updated accordingly. | ||
| 4f195185 | 2022-08-01 09:52:43 | [autofit] Updated to reduce casting. * src/autofit/afglobal.h (AF_FaceGlobalsRec): Change `glyph_count` type. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage, af_face_globals_get_metrics, af_face_globals_is_digit, af_face_globals_new): Changed local types and updated accordingly. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Ditto. | ||
| ee72e285 | 2022-07-29 22:55:28 | [autofit] Use unsigned accounting for hints. * src/autofit/afhints.h (AF_AxisHintsRec): Use unsigned types. * src/autofit/afhints.c (af_axis_hints_new_{segment,edge}, af_glyph_hints_get_num_segments, af_glyph_hints_get_segment_offset): Updated accordingly. * src/autofit/aflatin.c (af_cjk_hints_compute_edges): Ditto. * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Ditto. | ||
| fd02c369 | 2022-07-29 22:54:38 | * src/autofit/afhints.h: Remove dead code. | ||
| 773e31c7 | 2022-01-18 14:05:46 | * src/autofit/afglobal.c (af_face_globals_new): Reduce zeroing. Everything in AF_FaceGlobals is initialized except metrics. Those are zeroed here and initialized on demand later. | ||
| d0cfb4e1 | 2022-01-11 10:54:10 | Update all copyright notices. | ||
| 5aa2a5c3 | 2022-01-07 06:41:36 | [autofit, pshinter] Use `FT_OFFSET`. This avoids ``` runtime error: applying zero offset to null pointer ``` warnings of clang's undefined behaviour sanitizer. * src/autofit/afcjk.c (af_cjk_hints_link_segments, af_cjk_hints_compute_edges, af_cjk_hints_compute_blue_edges, af_cjk_hint_edges, af_cjk_align_edge_points): Do it. * src/autofit/afhints.c (af_glyph_hints_align_edge_points, af_glyph_hints_align_strong_points): Ditto. * src/autofit/aflatin.c (af_latin_metrics_init_widths, af_latin_hints_link_segments, af_latin_hints_compute_edges, af_latin_hints_compute_blue_edges, af_latin_hint_edges): Ditto. * src/pshinter/pshalgo.c (psh_hint_table_init): Ditto. | ||
| 68fae526 | 2021-09-30 22:59:04 | * src/autofit/afhints.c (af_glyph_hints_reload): Decrease casting. | ||
| a81cf5aa | 2021-09-02 22:10:57 | Cosmetic zeros. | ||
| 5bcaf51b | 2021-07-23 11:59:58 | [autofit] Split `afwrtsys.h`. The header file `afwrtsys.h` has two distinct functions: to include the required writing system headers and also to generate code for each writing system. At each current use site only one or the other is used, with various macro trickery selecting one or the other. Split this header into `afws-decl.h` for the required writing system declarations and `afws-iter.h` for iterating over the writing systems to generate code. The motivation for this change is that the Visual C++ compiler treats the standard include guard idiom like `#pragma once` 'if no non-comment code or preprocessor directive comes before or after the standard form of the idiom'. It appears to check this after macro expansion, so if `WRITING_SYSTEM` expands to empty the bottom of `afwrtsys.h` is empty and looks like the standard include guard idiom which is treated like `#pragma once`, so subsequent inclusion of `afwrtsys.h` is elided. Fixes #1075. * src/autofit/afglobal.c (af_writing_system_classes), src/autofit/aftypes.h (AF_WritingSystem), src/autofit/rules.mk (AUTOF_DRV_H): Updated. * src/autofit/afwrtsys.h: Split into... * src/autofit/afws-decl.h, src/autofit/afws-iter.h: New files. | ||
| 825b7ea2 | 2021-07-12 22:11:24 | [autofit] More clean-ups. * src/autofit/afhints.h (AF_GlyphHintsRec): Remove the no longer needed fields `xmin_delta` and `xmax_delta`. * src/autofit/afhints.c (af_glyph_hints_reload), src/autofit/afloader.c (af_loader_load_glyph): Updated. | ||
| a212668c | 2021-06-02 19:07:56 | Remove obsolete AF_Angle type and related sources. Move the af_sort_xxx() functions from afangles.c to afhints.c in order to get rid of the obsolete angle-related types, macros and function definitions. | ||
| 2f11522a | 2021-06-02 19:05:09 | Remove experimental auto-hinting 'warp' mode. This feature was always experimental, and probably nevery worked properly. This patch completely removes it from the source code, except for a documentation block describing it for historical purpose. | ||
| 15e88980 | 2021-06-02 18:54:41 | Remove experimental "Latin2" writing system (FT_OPTION_AUTOFIT2) This code has always been experimental and was never compiled anyway (FT_OPTION_AUTOFIT2 does not appear in ftoption.h or even any of our build files). | ||
| 232243e7 | 2021-06-19 06:32:29 | Prevent hinting if there are too many segments. This speeds up handling of broken glyphs. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35309 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Implement it. | ||
| f8c5c546 | 2021-06-16 09:54:49 | Fix for issue 1063 See https://gitlab.freedesktop.org/freetype/freetype/-/issues/1063 for more details on the bug. | ||
| 7ca7da9d | 2021-06-02 06:59:01 | * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix tracing. Problem reported by Alexei. | ||
| a50c39aa | 2021-05-29 09:50:29 | Fix compilation errors and (some) warnings for clang++. * src/autofit/afmodule.c (AF_GlyphHintsRec): Make it static. * src/cache/ftcache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c (ftc_snode_compare): Remove semicolon. * src/cff/cffparse.c (cff_parser_run): Add `break` statement. * src/cid/cidload.c (cid_hex_to_binary): Add cast. * src/sdf/ftbsdf.c (CHECK_NEIGHBOR): Use `do {} while(0)` loop. (bsdf_init_distance_map, finalize_sdf, bsdf_raster_render): Add casts. * src/sdf/ftsdf.c (sdf_generate_bounding_box, sdf_generate_with_overlaps): Ditto. * src/sdf/ftsdfcommon.h (square_root): Ditto. * src/sdf/ftsdfrend.c (sdf_property_get, ft_sdf_render, ft_bsdf_render): Ditto. * src/sfnt/ttcolr.c (find_base_glyph_record, find_base_glyph_v1_record): Fix variable signedness. (read_color_line): Add cast. (read_paint): Add casts. Fix signedness issue. (tt_face_get_colorline_stops) Fix signedness issues. * src/sfnt/ttpost.c (load_format_20): Add casts. * src/truetype/ttsubpix.c (TWEAK_RULES, TWEAK_RULES_EXCEPTIONS): Remove final semicolons. | ||
| f1f9705f | 2021-01-15 23:52:04 | [afshaper] Fix hb_ot_tags_from_script deprecation warning. * autofit/afshaper.c (af_shaper_get_coverage): Copy the source code of the function as suggested in https://github.com/harfbuzz/harfbuzz/issues/2737 and adjust to handle at most three tags. | ||
| b6e8a712 | 2021-01-17 07:18:48 | Update all copyright notices. | ||
| 0d5f1dd3 | 2020-12-18 22:10:30 | [autofit] Fix double division in stem darkening. The old code used to divide the darkening amount by em_ratio twice, leading to unnecessarily bold stems on certain fonts with higher units per em (e.g. Inter). This patch fixes it. The return value of af_loader_compute_darkening was also changed to use 16.16 fixed point to get rid of a redundant truncation operation. This should slightly improve the precision, although it's still bottlenecked by the emboldening function, which uses 26.6 fixed point. * src/autofit/afloader.[ch] (af_loader_compute_darkening): Return FT_Fixed. (af_loader_embolden_glyph_in_slot): Revise calculations. | ||
| 272ae5ee | 2020-12-07 10:29:24 | * src/*: More fixes for using a '\n' in `FT_TRACE` and `FT_ERROR`. | ||
| a6adb256 | 2020-12-02 14:15:07 | * src/*: Don't use more than one '\n' in `FT_TRACE` and `FT_ERROR`. This ensures good logging output, with all lines having a proper prefix (if requested). | ||
| 1286f58c | 2020-11-20 14:54:35 | Downgrade property tracing. | ||
| 40479fad | 2020-09-25 17:44:00 | [autofit] Synchronize with ttfautohint. This corresponds to the following commits in the ttfautohint git repository: bb6842bd3bd437b7b4a7921b0376c860f5e73d18 Typo, formatting. d5c91ddb1cb310257a3dfe9a8e20e1fc51335faa Add Medefaidrin script. * src/autofit/afblue.dat: Add blue zone data for Medefaidrin. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Medefaidrin standard characters. * src/autofit/afranges.c, src/autofit/afstyles.h: Add Medefaidrin data. | ||
| 53be1753 | 2020-07-28 07:33:40 | Fix `-Wformat' compiler warnings. * src/*: Fix format specifiers. * builds/unix/ftsystem.c (FT_Stream_Open): Ditto. | ||
| 96fb73ef | 2020-07-07 16:58:14 | Fix clang warnings. * include/freetype/internal/autohint.h (FT_DECLARE_AUTOHINTER_INTERFACE): New macro. * src/autofit/afmodule.h: Use it to declare `af_autofitter_interface'. * include/freetype/internal/ftobjs.h (FT_DECLARE_GLYPH): New macro. * src/base/ftbase.h: Use it to declare `ft_bitmap_glyph_class' and `ft_outline_glyph_class'. * src/base/ftglyph.c: Include `ftbase.h'. * src/cff/cffparse.c (cff_parser_run): Fix type of `t2_size'. * src/pcf/pcfdrivr.c (pcf_cmap_char_next): Fix type of `result'. * src/psaux/psauxmod.c (psaux_module_class): Use `FT_DEFINE_MODULE'. * src/psaux/psauxmod.h: Declare `afm_parser_funcs', `t1_cmap_classes', `cff_decoder_funcs', and `psaux_module_class'. * src/pshinter/pshmod.c: Include `pshmod.h'. * src/sfnt/sfwoff2.c (ROUND4, WRITE_SHORT): Fix implicit sign conversion. (compute_ULong_sum): Fix return type. Fix implicit sign conversion. (store_points): Fix type of `last_flag', `repeat_count', and `flag'. Use casts to avoid warnings. (reconstruct_glyf): Fix implicit sign conversion. Use cast to avoid warning. (get_x_mins): Fix implicit sign conversion. * src/sfnt/ttcmap.c: Undef `TTCMAPCITEM'. * src/sfnt/ttcmap.h: Define `TTCMAPCITEM' and include `ttcmapc.h' to declare cmap classes. * src/smooth/ftsmooth.c (ft_smooth_overlap_spans): Use cast. * src/truetype/ttinterp.c (Ins_MIAP): Fix typo. | ||
| 16586859 | 2020-06-13 21:15:45 | Remove redundant inclusion of `ft2build.h'. * */*: Remove `#include <ft2build.h>' where possible. * include/freetype/freetype.h: Remove cpp error about missing inclusion of `ft2build.h'. | ||
| e1339133 | 2020-06-08 13:31:55 | Make macros for header file names optional. We no longer have to take care of the 8.3 file name limit; this allows us (a) to introduce longer, meaningful file names, and (b) to avoid macro names in `#include' lines altogether since some compilers (most notably Visual C++) doesn't support this properly. */*: Replace #include FOO_H with #include <freetype/foo.h> or something similar. Also update the documentation. | ||
| 4eee1340 | 2020-05-18 09:16:12 | Remove Jamfile files from the tree. These have not been used in a very, very long time, so better remove them. A corresponding patch will be submitted to the `freetype2-demos' repository. * src/Jamfile, src/*/Jamfile, Jamrules: Delete. | ||
| 49f3394d | 2020-02-19 12:56:49 | [autofit] Add support for Hanifi Rohingya script. * src/autofit/afblue.dat: Add blue zone data for Hanifi Rohingya. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Hanifi Rohingya standard character. * src/autofit/afranges.c, src/autofit/afstyles.h: Add Hanifi Rohingya data. | ||
| e5038be7 | 2020-01-19 17:05:19 | Update all copyright notices. | ||
| 2c9a2d58 | 2019-12-13 23:56:25 | Another bunch of UBSan warnings on adding offsets to nullptr. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19427 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19433 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19441 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19451 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19452 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19457 * src/autofit/aflatin.c (af_latin_hints_compute_segments, af_latin_hints_compute_edges): Use `FT_OFFSET'. * src/base/ftstream.c (FT_Stream_EnterFrame): Use `FT_OFFSET'. * src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Exit early if there is no charstring. * src/psaux/psobjs.c (t1_decrypt): Use `FT_OFFSET'. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Exit early for zero bitmap dimensions. | ||
| 551bd3a9 | 2019-12-03 11:52:48 | More nullptr offset UBSan warnings (#57331, #57347). * src/autofit/afcjk.c (af_cjk_hints_compute_segments), src/psaux/psft.c (cf2_getSeacComponent), src/truetype/ttinterp.c (Ins_UNKNOWN): Use `FT_OFFSET'. | ||
| 07c8d8bb | 2019-11-23 10:00:02 | Minor fixes for recent compilers. * src/gzip/infutil.h (inflate_mask): Add `const'. * src/autofit/aflatin2.c: Include `ft2build.h'. | ||
| 47ca5cb6 | 2019-06-16 15:32:11 | [autofit] Disable hinting if no blue zones are available (#56450). * src/autofit/afglobal.c (af_face_global_get_metrics): Start again (with dummy hinter module) if no blue zones are present. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Change signature to return error code. If no blue zones are found, update `glyph_styles' array to hold AF_STYLE_NONE_DFLT instead of the current style. (af_latin_metrics_init): Return internal error code if no blue zones are found. | ||
| 3736b28a | 2019-06-13 13:45:05 | * src/autofit/aflatin.c (af_latin_metrics_init_widths): Minor. | ||
| 7b841047 | 2019-05-04 08:13:22 | Various clang 8.0 static analyzer fixes. Reported by Sender Ghost <lightside@gmx.com>. * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Catch a corner case where `edge->first' could be NULL. * src/pfr/pfrobjs.c (pfr_slot_load): Remove unnecessary test of `size'. * src/raster/ftraster.c (Draw_Sweep): Catch a corner case where `draw_right' might be NULL. * src/sfnt/ttmtx.c (tt_face_get_metrics): Fix limit test for `aadvance'. Ensure `abearing' always hold a meaningful result. * src/truetype/ttgload.c (load_truetype_glyph): Ensure `subglyph' is not NULL before accessing it. * src/truetype/ttgxvar.c (TT_Set_Named_Instance): Remove unnecessary test of `namedstyle'. * src/type42/t42parse.c (t42_parser_done): Ensure `parser->root.funcs.done' is not NULL before accessing it. |