summaryrefslogtreecommitdiff
path: root/Build/source/libs/freetype2/freetype-src/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/ChangeLog')
-rw-r--r--Build/source/libs/freetype2/freetype-src/ChangeLog1173
1 files changed, 1170 insertions, 3 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/ChangeLog b/Build/source/libs/freetype2/freetype-src/ChangeLog
index 6450a60bea2..e4ea3c5318d 100644
--- a/Build/source/libs/freetype2/freetype-src/ChangeLog
+++ b/Build/source/libs/freetype2/freetype-src/ChangeLog
@@ -1,3 +1,1170 @@
+2020-05-09 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.10.2 released.
+ ==========================
+
+
+ Tag sources with `VER-2-10-2'.
+
+ * docs/VERSION.TXT: Add entry for version 2.10.2.
+
+ * README, Jamfile (RefDoc), src/base/ftver.rc,
+ builds/windows/vc2010/index.html, builds/windows/visualc/index.html,
+ builds/windows/visualce/index.html,
+ builds/wince/vc2005-ce/index.html,
+ builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
+ s/2.10.1/2.10.2/, s/2101/2102/.
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
+
+ * builds/unix/configure.raw (version_info): Set to 23:2:17.
+ * CMakeLists.txt (VERSION_PATCH): Set to 2.
+
+ * docs/CHANGES: Updated.
+
+2020-05-08 Jakub Alba <jalba@vewd.com>
+
+ * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#58319).
+
+ The font that exceeds the old limit is Icono Regular, version
+ 1.00000.
+
+2020-05-03 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * builds/freetype.mk: Refactor for readability.
+
+2020-05-02 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [builds] Clean up Windows CE project files.
+
+ Remove version from filenames that caused a lot of polution in the
+ release process. Use VERSIONINFO resource instead.
+
+ * builds/wince/vc2005-ce/freetype.vcproj,
+ builds/wince/vc2008-ce/freetype.vcproj,
+ builds/windows/visualce/freetype.vcproj,
+ builds/windows/visualce/freetype.dsp: s/2101//g, but add `ftver.rc'.
+ * builds/wince/vc2008-ce/index.html,
+ builds/wince/vc2005-ce/index.html,
+ builds/windows/visualce/index.html: s/2101//g.
+
+2020-05-01 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * devel/ft2build.h: Override FT_CONFIG_MODULES_H here as well.
+
+2020-05-01 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [builds/unix] Consolidate marco overrides (for the demos to see them).
+
+ * builds/unix/unix-cc.in (FT_CONFIG_MODULES_H, FT_CONFIG_OPTIONS_H):
+ Override them here...
+ * builds/freetype.mk: ... instead of here.
+
+2020-04-08 Werner Lemberg <wl@gnu.org>
+
+ Allow setting `CC' in Unix build (#58051).
+
+ * builds/unix/unix-cc.in (CC): Use `override'. The command line
+ value of `CC' (if any) is stored already in `CCraw'.
+
+2020-04-04 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Return if single stream operation fails.
+
+ * src/sfnt/sfwoff2.c (get_x_mins): Do it.
+
+ * src/sfnt/woff2tags.c: Remove unused include.
+
+2020-03-22 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [docs] Fix building docs if `srcdir' != `builddir'.
+
+ `docs/reference/*' was moved one directory up in commit 237fed6.
+
+ * builds/unix/unix-def.in (PIP): Remove variable.
+
+ * configure: Create `docs' directory and copy assets from
+ `docs/markdown'.
+
+ * docs/README: Output directory is `reference'.
+
+2020-03-21 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [docwriter] Drop support for Python < 3.5.
+
+ Python versions < 3.5 have reached end-of-life and as such, no
+ security or bug fixes will be provided for those versions. See
+
+ https://devguide.python.org/#status-of-python-branches
+
+ for more information.
+
+ * Jamfile (RefDoc): Add `site' parameter.
+
+ * builds/detect.mk (std_setup): Update Python version requirement.
+
+ * builds/freetype.mk (refdoc-venv): Use pip as `python -m pip'.
+
+ * builds/unix/ax_compare_version.m4,
+ builds/unix/ax_prog_python_version.m4: Macros to detect Python
+ version. New files.
+
+ * builds/unix/configure.raw: Check for Python >= 3.5 and remove
+ check for `pip'.
+
+ * docs/CHANGES, docs/INSTALL.GNU, docs/README: Updated.
+
+2020-03-02 Moazin Khatti <moazinkhatri@gmail.com>
+
+ [gzip] Support `gzip' encoded header conditionally.
+
+ In order to support `gzip' encoded header the call to
+ `inflateInit2' was modified in commit 6a92b1fadde26477a9179.
+ However, this code breaks with the outdated internal version
+ of zlib. This is a temporary fix to conditionally support
+ `gzip' encoded header whenever a system installation of zlib
+ is being used.
+
+ Problem report in
+
+ https://lists.nongnu.org/archive/html/freetype-devel/2020-02/msg00023.html
+
+ * src/gzip/ftgzip.c (FT_Gzip_Uncompress): Change the the call to
+ `inflateInit2' depending on whether the system installation is
+ being used or the internal copy.
+
+2020-02-29 Ben Wagner <bungeman@google.com>
+
+ [truetype] Fix state of `FT_Face' for buggy `gvar' tables (#57923).
+
+ By resetting the blend as implemented with this commit fonts with
+ invalid `gvar' tables may keep calling into `ft_var_load_gvar' from
+ `tt_set_mm_blend' and failing, but the font was invalid anyway and
+ we want to keep seeing the failure in `tt_set_mm_blend'.
+
+ * src/truetype/ttgxvar.c (ft_var_load_gvar): Calculate length of
+ offset array once.
+ Allocate arrays after `FT_FRAME_ENTER' (extra check before
+ allocating and avoid needing to free array later if error entering
+ frame).
+ Always call `FT_FRAME_EXIT'.
+ Consistently set counts immediately after array initialized.
+ Reset the blend (particularly `blend->glyphoffsets') on failure.
+
+2020-03-01 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [docs] Update docwriter stylesheet.
+
+ This change is required to support docwriter 1.2.1.
+
+ See
+
+ https://github.com/freetype/docwriter/issues/36
+
+ for more information.
+
+ * docs/markdown/stylesheets/extra.css:
+ (.md-typeset code) -> (.md-typeset pre>code)
+ (pre) -> (pre>code)
+ (p, .md-typeset p, h4): Remove commented styles.
+ (table.index): Remove unused styles.
+
+2020-02-28 Ben Wagner <bungeman@google.com>
+
+ [truetype] Add better checks for loading `gvar' table (#57905).
+
+ * src/truetype/ttgxvar.c (ft_var_load_gvar): Delay settings of any
+ `blend->xxxcount' values until the corresponding data has been
+ checked.
+ Also do some sanitizing to avoid a too early exit.
+
+ (TT_Vary_Apply_Glyph_Deltas): Improve tracing message.
+
+2020-02-27 Werner Lemberg <wl@gnu.org>
+
+ Make `FT_HAS_*' and `FT_IS_*' really return true (#57906).
+
+ * include/freetype/freetype.h (FT_HAS_*, FT_IS_*): Implement it.
+
+2020-02-25 Dominik Röttsches <drott@chromium.org>
+
+ Fix for CFF space glyph regression (#57541).
+
+ * src/psaux/psft.c (cf2_decoder_parse_substrings): Replace early-out
+ with FT_OFFSET.
+
+2020-02-22 Werner Lemberg <wl@gnu.org>
+
+ [woff2] Fix font table access.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20778
+
+ * src/sfnt/sfwoff2.c (get_x_mins): Explicitly check for presence of
+ `head' table, which might not have been processed yet.
+
+2020-02-21 Werner Lemberg <wl@gnu.org>
+
+ [psaux] Make `t1_decoder_parse_metrics' handle `op_div' (#57519).
+
+ * src/psaux/t1decode.c (t1_decoder_parse_metrics): Copy
+ corresponding code from old engine's `t1_decoder_parse_charstrings'
+ function.
+
+2020-02-19 Nikolaus Waxweiler <nikolaus.waxweiler@daltonmaag.com>
+
+ [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.
+
+2020-02-19 Werner Lemberg <wl@gnu.org>
+
+ Require HarfBuzz 1.8.
+
+ * builds/unix/configure.raw, CMakeLists.txt: Request HarfBuzz 1.8.0
+ or newer.
+
+ We are going to add auto-hinter support for Hanifi Rohingya, which
+ was introduced in Unicode 11.0.
+
+2020-02-12 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttcmap.c (tt_face_build_cmaps): Ignore version (#57708).
+
+2020-02-04 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#57732).
+
+ The font that exceeds the old limit is Constantine, version 1.001.
+
+2020-01-04 Werner Lemberg <wl@gnu.org>
+
+ [base] Fix `FREETYPE_PROPERTIES=type1:hinting-engine=adobe`.
+
+ * src/base/ftpsprop.c (ps_property_set) [hinting-engine]: Avoid an
+ incorrect return value that caused a warning. The function did the
+ right thing, though.
+
+2020-01-03 Werner Lemberg <wl@gnu.org>
+
+ [woff2] Fix memory leaks and a runtime warning.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19773
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18101
+
+ * src/sfnt/sfwoff2.c (compute_ULong_sum): Add missing cast.
+ (reconstruct_hmtx): Add missing deallocation calls.
+
+2020-01-02 Dominik Röttsches <drott@chromium.org>
+
+ [truetype] Fix UBSan warning on offset to nullptr (#57501).
+
+ * src/truetype/ttinterp.c (Ins_CALL): Fail if `exc->FDefs' is null.
+
+2019-12-31 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Allow bitmap-only fonts (#57394).
+
+ * src/sfnt/sfwoff2.c (reconstruct_font): Fix test for `glyf' and
+ `loca' tables.
+
+2019-12-21 Hugh McMaster <hugh.mcmaster@outlook.com>
+
+ [docs] (2/2) Fix generation of API documentation (#56745).
+
+ Creating the API Reference in the (new) `reference' sub-directory is
+ consistent with other documentation sub-topics, such as `design',
+ `glyphs' and `tutorial'.
+
+ This patch fixes broken hyperlinks in the documentation pointing to
+ and from the API Reference. It also allows web assets to load from
+ their relative paths.
+
+ * builds/freetype.mk (DOC_DIR): Adjust.
+ (refdoc, refdoc-venv): Add `--site' argument.
+
+ * builds/toplevel.mk (do-dist): Updated.
+
+2019-12-21 Hugh McMaster <hugh.mcmaster@outlook.com>
+
+ [docs] (1/2) Move static web assets (#56745).
+
+ * docs/reference/*: Move ...
+ * docs: ... one directory up.
+
+2019-12-21 Dominik Röttsches <drott@chromium.org>
+
+ Fix more UBSan warnings on adding offset to nullptr (#57432).
+
+ * src/truetype/ttinterp.c (Ins_LOOPCALL), src/psaux/psft.c
+ (cf2_initLocalRegionBuffer): Use `FT_OFFSET'.
+
+2019-12-16 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix UBSan warnings on adding offsets to nullptr.
+
+ Reported as
+
+ https://bugs.chromium.org/p/chromium/issues/detail?id=1032152
+
+ * src/truetype/ttinterp.c (Ins_FDEF, Ins_IDEF): Use `FT_OFFSET'.
+
+2019-12-14 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix integer overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19305
+
+ * src/truetype/ttinterp.c (Ins_MIRP): Use `ADD_LONG'.
+
+2019-12-13 Werner Lemberg <wl@gnu.org>
+
+ 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.
+
+2019-12-09 Dominik Röttsches <drott@chromium.org>
+
+ Fix more UBSan warnings on adding offset to nullptr (#57384).
+
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic),
+ src/psaux/psobjs.c (ps_table_add): Use `FT_OFFSET'.
+
+2019-12-05 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttinterp.c (TT_RunIns): Use `FT_OFFSET'.
+
+ Reported as
+
+ https://bugs.chromium.org/p/chromium/issues/detail?id=1030614
+
+2019-12-03 Werner Lemberg <wl@gnu.org>
+
+ 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'.
+
+2019-11-29 Dominik Röttsches <drott@chromium.org>
+
+ Avoid more nullptr offset UBSan warnings (#57316).
+
+ * src/base/ftoutln.c (FT_Outline_Transform): Bail on empty points.
+ * src/cff/cffload.c (cff_subfont_load): Use `FT_OFFSET'.
+ * src/psaux/psft.c (cf2_decoder_parse_substrings): Early out if
+ `charstring_base' or `charstring_len' are null.
+ * src/sfnt/ttload.c (tt_face_load_name): Use `FT_OFFSET'.
+
+2019-11-23 John Stracke <jstracke@Google.com>
+
+ [base] Really fix #57194.
+
+ Apply accidentally missed second part of patch.
+
+ * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Call
+ `FT_GlyphLoader_CreateExtra'.
+
+2019-11-23 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Avoid sanitizer warning (#57289).
+
+ * src/truetype/ttpload.c (tt_face_get_device_metrics): Use
+ `FT_OFFSET'.
+
+2019-11-23 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ [truetype] Fix integer overflow (#57287).
+
+ * src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
+
+2019-11-23 Ben Wagner <bungeman@google.com>
+
+ [sfnt] Avoid sanitizer warning (#57286).
+
+ * src/sfnt/ttcmap.c (tt_face_build_cmaps): Avoid possible `NULL +
+ offset' computation.
+ Tag `table' as `const'.
+
+2019-11-23 John Stracke <jstracke@Google.com>
+ Werner Lemberg <wl@gnu.org>
+
+ [base] Fix `NULL + offset' sanitizer warnings (#57194).
+
+ * src/base/ftgloadr.c (FT_GlyphLoader_Adjust_Points,
+ FT_GlyphLoader_Adjust_Subglyphs): Use `FT_OFFSET'.
+ (FT_GlyphLoader_CreateExtra): Add short cut if some values are zero.
+
+2019-11-23 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/ftmemory.h (FT_OFFSET): New macro.
+
+ Use this for `base + offset' pointer calculations where `base' can
+ be NULL (triggering a sanitizer warning even if the resulting
+ pointer gets never dereferenced since it is undefined behaviour
+ in C).
+
+ Suggested by Ben Wagner.
+
+2019-11-23 Ben Wagner <bungeman@google.com>
+
+ [sfnt] Ensure OTTO fonts have tables (#57285).
+
+ * src/sfnt/ttload.c (tt_face_load_font_dir): Add test.
+
+2019-11-23 Behdad Esfahbod <behdad@behdad.org>
+
+ Minor fixes for recent compilers.
+
+ * src/gzip/infutil.h (inflate_mask): Add `const'.
+
+ * src/autofit/aflatin2.c: Include `ft2build.h'.
+
+2019-11-07 Nikolaus Waxweiler <madigens@gmail.com>
+
+ * CMakeLists.txt: Minor additions to the notes, compile
+ builds/unix/ftsystem.c instead of src/base/ftsystem.c on UNIX.
+
+ The latter change is based on the code proposed by rim in #55235.
+
+2019-10-25 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Check `num_fonts' for TTCs.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18494
+
+2019-10-22 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Avoid undefined shift.
+
+ Also improve tracing.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18390
+
+2019-10-10 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/sfnt/pngshim.c (premultiply_data): Optimize for __SSE__ only.
+
+2019-10-10 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2.c (reconstruct_glyf): Check `triplet_size'.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18108
+
+2019-10-09 John Tytgat <John.Tytgat@esko.com>
+
+ [cff] Fix FT_FACE_FLAG_GLYPH_NAMES for CFF2 based fonts (#57023).
+
+ * src/cff/cffobjs.c (cff_face_init): Don't set
+ FT_FACE_FLAG_GLYPH_NAMES for CFF2 based fonts.
+
+2019-10-08 Werner Lemberg <wl@gnu.org>
+
+ [woff2] Fix SFNT table checks.
+
+ Also reduce number of SFNT table lookups.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18065
+
+ * include/freetype/internal/wofftypes.h (WOFF2_InfoRec): Add fields
+ `glyf_table', `loca_table', and `head_table'.
+
+ * src/sfnt/sfwoff2.c (reconstruct_glyf): Update signature.
+ Use table pointers in `info' parameter.
+ (get_x_mins): Check `maxp_table'
+ Use table pointers in `info' parameter.
+ (reconstruct_font): Use and set table pointers in `info' parameter.
+ Fix check for `glyf' and `loca' tables.
+ Update call to `reconstruct_glyf'.
+ (woff2_open_font): Updated.
+
+2019-10-06 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2.c (reconstruct_glyf): Fix reallocation.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18046
+
+2019-10-06 Werner Lemberg <wl@gnu.org>
+
+ Improve memory debugging.
+
+ * include/freetype/internal/ftmemory.h (FT_MEM_FREE): Use
+ `FT_DEBUG_INNER' to set source code file name and line.
+
+ * src/base/ftdbgmem.c (ft_mem_table_remove): Better formatting of
+ tracing message.
+
+2019-10-03 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2 (reconstruct_font): Fix reallocation.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17966
+
+2019-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftstroke.c (ft_stroker_inside): Speed up.
+
+2019-10-01 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2 (woff2_open_font): Initialize `woff2.ttc_fonts'.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17804
+
+2019-09-30 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2.c (reconstruct_font): Fix memory leak.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17812
+
+2019-09-30 Werner Lemberg <wl@gnu.org>
+
+ [woff2] Reject fonts without `head' table.
+
+ Also fix memory deallocation in case of error.
+
+ `head' problem reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17820
+
+ * src/sfnt/sfwoff2.c (reconstruct_glyf): Don't use `stream_close'.
+ Abort if `head_table' is NULL.
+ Don't free `transformed_buf' in case of error.
+ (woff2_open_font): Don't set `uncompressed_buf' to NULL.
+
+2019-09-29 Werner Lemberg <wl@gnu.org>
+
+ [woff2] Fix compiler warnings.
+
+ Problem reported by Alexei.
+
+ * src/sfnt/sfwoff2.c (reconstruct_glyf): Initialize `x_min'.
+ (reconstruct_font): Initialize `num_hmetrics'.
+ (woff2_open_font): Initialize `info'.
+
+2019-09-28 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Fix sanity check.
+
+ Correct thinkos in patch from 2019-09-01.
+
+2019-09-28 Werner Lemberg <wl@gnu.org>
+
+ [woff2] Fix memory leaks.
+
+ One of them reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17766
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Free `info->x_mins' and
+ `woff2->ttc_fonts'.
+
+ (reconstruct_glyf): Initialize `info->x_mins'.
+
+2019-09-27 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftstroke.c (ft_stroker_cap): Speed up caps.
+
+2019-09-25 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftstroke.c (ft_stroker_outside): Speed up clipped miter.
+ * include/freetype/ftstroke.h: Wordsmith miter docs.
+
+2019-09-25 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Check (sum of) table sizes.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17684
+
+2019-09-23 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftstroke.c (ft_stroke_border_arcto): Speed up calculations.
+
+2019-09-20 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Fix memory leaks.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16896
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Fix error handling.
+ Free `uncompressed_buf'.
+ (reconstruct_font): Free `transformed_buf'.
+
+2019-09-17 Werner Lemberg <wl@gnu.org>
+
+ * src/otvalid/otvcommon.c (otv_Coverage_get_last): Guard `count'.
+
+ Problem reported by Marc Schönefeld <marc.schoenefeld@gmx.org>.
+
+2019-09-17 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Check table index.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17100
+
+2019-09-15 Avi Halachmi (:avih) <avihpit@yahoo.com>
+
+ [cmake] Don't fail if brotli is missing (#56894).
+
+ The libs which cmake controls are commented out at
+
+ include/freetype/config/ftoption.h
+
+ and cmake un-comment each enabled library, but the brotli option was
+ not commented out, therefore `FT_CONFIG_OPTION_USE_BROTLI' remained
+ defined even if brotli was missing/disabled/etc.
+
+ Comment it such that cmake can control it, which means leaving it
+ undefined if brotli is missing.
+
+ * include/freetype/config/ftoption.h: Fix typo.
+
+2019-09-05 Werner Lemberg <wl@gnu.org>
+
+ [cmake] Add brotli support.
+
+ * CMakeLists.txt (FT_WITH_BROTLI): New option.
+
+ * builds/cmake/FindBrotliDec.cmake: New file.
+
+2019-09-05 Werner Lemberg <wl@gnu.org>
+
+ Fix handling of `AF_CONFIG_OPTION_INDIC'.
+
+ * devel/ftoption.h, include/freetype/config/ftoption.h:
+ `AF_CONFIG_OPTION_INDIC' needs `AF_CONFIG_OPTION_CJK'.
+
+2019-09-05 Werner Lemberg <wl@gnu.org>
+
+ CMakeLists.txt: Fix generation of DLL related stuff (#56852).
+
+ Extract `version_info' variable from `builds/unix/configure.raw' and
+ use the data to correctly set `LIBRARY_VERSION' and
+ `LIBRARY_SOVERSION'.
+
+ Also use the data to set `ft_version' field in `freetype2.pc'.
+ Also fix the needed minimum version of HarfBuzz in `freetype2.pc'.
+
+2019-09-03 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2.c (compute_ULong_sum): Fix undefined shift.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16933
+
+2019-09-01 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Add sanity check.
+
+ Don't trust `totalSfntSize' unconditionally.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16893
+
+2019-08-27 Dominik Röttsches <drott@chromium.org>
+
+ [woff2] Don't use `FT_UInt64' (#56815).
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Use `FT_UInt32' for
+ `file_offset'. This fixes builds on platforms where `FT_LONG64' is
+ not defined while still being sufficient to store a file offset.
+
+2019-08-27 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Prevent crash in `TT_Set_Named_Instance' (#56813).
+
+ * src/truetype/ttgxvar.c (TT_Set_Named_Instance): Fix error
+ handling.
+
+2019-08-27 Werner Lemberg <wl@gnu.org>
+
+ [woff2] Fix compiler warnings.
+
+ * src/sfnt/sfwoff2.c (read_num_hmetrics): Remove unused argument
+ `table_len'.
+ Update caller.
+ (triplet_decode, compute_bbox, store_loca, reconstruct_glyf): Make
+ `i' variable unsigned.
+ (reconstruct_glyph): Remove condition which is always false.
+ (reconstruct_html): Removed unused argument `transformed_size'.
+ Update caller.
+
+ * src/sfnt/woff2tags.c (woff2_known_tags): Remove condition which is
+ always false.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Check whether known tag is in array bounds.
+
+ If table tag is not 0x3f, we expect a value between 0 and 62. If
+ this is not the case, exit with errors.
+
+ * src/sfnt/sfwoff2/c: Check whether table tag makes sense.
+
+ * src/sfnt/woff2tags.c: Return 0 if tag is out of bounds.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ * src/sfnt/sfwoff2.c: Improve trace comments.
+
+ Adjust tracing levels for comments, and more formatting.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Support `hmtx' reconstruction when `glyf' is untransformed.
+
+ `reconstruct_hmtx' requires `info->x_mins' and `info->num_glyphs' to
+ reconstruct the hmtx table. In case glyf is not transformed, we
+ call `get_x_mins' which does the necessary work.
+
+ * src/sfnt/sfwoff2.c (get_x_mins): New function.
+ (reconstruct_font): Call get_x_mins.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [sfnt] Support `face->num_faces' for WOFF2 fonts.
+
+ Set correct value of `face->num_faces' for WOFF2 fonts. This is
+ being handled separately because we only load the tables for the
+ requested font face in `woff2_open_font' and create a single-face
+ sfnt stream.
+
+ The full discussion is at:
+
+ https://lists.gnu.org/archive/html/freetype-devel/2019-08/msg00000.html
+
+ * src/sfnt/sfobjs.c (sfnt_open_font): Add parameter
+ `woff2_num_faces'.
+ (sfnt_init_face): Introduce variable `woff2_num_faces', and change
+ `face->root.num_faces' if `woff2_num_faces' is set.
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Validate requested face
+ index and handle negative face indices.
+
+ * src/sfnt/sfwoff2.h (woff2_open_font): Add parameter `num_faces' to
+ declaration.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Improve memory and error handling.
+
+ Free up memory after use, and improve error handling.
+
+ * src/sfnt/sfwoff2.c (reconstruct_font, woff2_open_font): Implement
+ changes.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Avoid too many calls to `FT_REALLOC'.
+
+ We do this by using `totalSfntSize' as an initial reference, and
+ extending the buffer when required. This reduces rendering time
+ considerably.
+
+ * include/freetype/internal/wofftypes.h (WOFF2_HeaderRec): Add
+ `totalSfntSize', rename `total_sfnt_size' to `actual_sfnt_size'.
+
+ * src/sfnt/sfwoff2.c (write_buf): Add parameter `dst_size' to keep
+ track of and update total size of stream.
+
+ (WRITE_SFNT_BUF, WRITE_SFNT_BUF_AT): Modify macros accordingly.
+
+ (pad4, store_loca, reconstruct_glyf, reconstruct_hmtx,
+ reconstruct_font): Update parameters to accept `sfnt_size'.
+
+ (woff2_open_font): Add variable `sfnt_size'. Use WOFF2 header field
+ `totalSfntSize' as initial reference (if value makes sense) and
+ allocate `totalSfntSize' bytes for the sfnt stream. `write_buf'
+ handles reallocation if and when required. Also resize the stream
+ to `actual_sfnt_size' after reconstruction.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Reconstruct `loca', `hmtx', and swap out stream.
+
+ Add necessary functions to reconstruct loca and hmtx tables (the two
+ remaining tables that can have a transform). `woff2_open_font' is
+ now capable of loading a woff2 font face. This code may still need
+ more refining and better memory management.
+
+ * include/freetype/internal/wofftypes.h (WOFF2_HeaderRec): Add total
+ (final) size of sfnt stream.
+
+ (WOFF2_InfoRec): Add header checksum value.
+
+ * src/sfnt/sfobjs.c (sfnt_open_font): Change `face_instance_index'
+ parameter to its pointer so its value can be modified by
+ `woff2_open_font'.
+
+ * src/sfnt/sfwoff2.c: (WRITE_SFNT_BUF_AT): New macro to write into
+ sfnt buffer at given position.
+
+ (write_buf): Add parameter `extend_buf' which allows caller to
+ specify whether buffer should be reallocated before copying data.
+
+ (WRITE_SFNT_BUF): Updated.
+
+ (pad4, store_loca, reconstruct_htmx): New functions.
+
+ (reconstruct_glyf): Calculate loca values and store them.
+
+ (reconstruct_font): Call `reconstruct_hmtx', write table record
+ entries, and calculate table checksums. Also calculate font
+ checksum and update `checksumAdjustment' entry in head table.
+
+ (woff2_open_font): Open stream for sfnt buffer, swap out input
+ stream and return.
+
+ * src/sfnt/sfwoff2.h (woff2_open_font): Modify parameter to accept
+ pointer to `face_index'.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Reconstruct transformed `glyf' table.
+
+ Reconstruct `glyf' table if it is transformed in the uncompressed
+ table stream. Also add necessary structures, macros and functions.
+
+ * include/freetype/internal/wofftypes.h (WOFF2_InfoRec,
+ WOFF2_SubstreamRec, WOFF2_PointRec): New structures.
+ (WOFF2_TableRec): s/OrigLength/dst_length/.
+
+ * src/sfnt/sfwoff2.c (READ_255USHORT, READ_BASE128): Use
+ `FT_SET_ERROR' to set implicit `error' variable.
+
+ (WRITE_SHORT): New macro.
+
+ (N_CONTOUR_STREAM, N_POINTS_STREAM, FLAG_STREAM, GLYPH_STREAM,
+ COMPOSITE_STREAM, BBOX_STREAM, INSTRUCTION_STREAM): New macros to
+ refer to substreams of the transformed `glyf' tables.
+
+ (Read255UShort, ReadBase128): Return errors set by `FT_READ_XXX'
+ macros.
+
+ (with_sign, safe_int_addition): New functions to add sign to values
+ based on a flag and perform safe addition respectively.
+
+ (triplet_decode): Decode variable-length (flag, xCoordinate,
+ yCoordinate) triplet for a simple glyph. See
+
+ https://www.w3.org/TR/WOFF2/#triplet_decoding
+
+ (store_points, compute_bbox, composteGlyph_size, reconstruct_glyf):
+ New functions.
+
+ (reconstruct_font): Call `reconstruct_glyf'.
+
+ * src/sfnt/sfwoff2.h: Add required constants.
+
+ * src/sfnt/woff2tags.h: Move out constants to `sfwoff2.h'.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Copy un-transformed tables to sfnt stream.
+
+ Copy un-transformed tables to the sfnt stream.
+
+ * src/sfnt/sfwoff2.c: (WRITE_SFNT_BUF): New macro.
+ (write_buf): New function. Extend memory of `dst' buffer and copy
+ bytes from `src'.
+ (compute_ULong_sum): New function. Calculate checksum of table.
+ (reconstruct_font): Change `FT_Byte* sfnt' to `FT_Byte**
+ sfnt_bytes'. This has been done because we reallocate memory to
+ `sfnt' multiple times, which may change the pointer value of `sfnt'.
+ This new pointer must be propogated back to the caller. Same reason
+ for using a double pointer in `write_buf'.
+
+ * src/sfnt/woff2tags.h (WOFF2_DEFAULT_MAX_SIZE): New macro used for
+ overflow checking.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Create stream for uncompressed buffer.
+
+ Uncompressed buffer is now an `FT_Stream'.
+
+ Perform basic checks and start iterating over tables.
+
+ * src/sfnt/sfwoff2.c (stream_close, find_table, read_num_hmetrics):
+ New functions.
+ (reconstruct_font): Modify parameters and iterate over tables.
+ (woff2_open_font): Updated.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Handle TTCs and start reconstructing font.
+
+ We `handle' TTCs by modifying the `indices' array to point to only
+ those tables that are part of the requested `face_index'.
+
+ Set and use `num_tables' in `WOFF2_TtcFont'.
+
+ * src/sfnt/sfwoff2.c (reconstruct_font): New function.
+ (woff2_open_font): Start reconstruction of font.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Get known tags from function.
+
+ Change `KnownTags' to a function (`woff2_known_tags'). This avoids
+ introducing a global constant array. This function returns the
+ specified index without *any* checks. The caller must ensure that
+ `index' is within array limits.
+
+ * src/sfnt/sfwoff2.c (woff2_open_font): Change `KnownTags[...]'
+ notation to `woff2_known_tags( ... )'.
+
+ * src/sfnt/woff2tags.c: Perform changes.
+
+ * src/sfnt/woff2tags.h: Update definitions.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Minor.
+
+ * src/sfnt/sfwoff2.c (woff2_uncompress): Add error message
+ (woff2_open_font): Free `uncompressed_buf'.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Uncompress Brotli streams and `face_index' support.
+
+ WOFF2 compressed stream is now uncompressed if Brotli is available.
+ This data is stored in a separate buffer (uncompressed_buf) because
+ it does not contain direct table data. Certain tables have
+ transformations applied to them, and they must be reconstructed
+ before we can write those tables to the SFNT stream.
+
+ `face_index' is now being passed as a parameter to
+ `woff2_open_font'.
+
+ * src/sfnt/sfobjs.c (sfnt_open_font): Add parameter
+ `face_instance_index'.
+
+ * src/sfnt/sfwoff2.c (woff2_uncompress): New function.
+ (woff2_open_font): Call `woff2_uncompress'.
+ (compute_first_table_offset): Fix return type.
+
+ * src/sfnt/sfwoff2.h (woff2_open_font): Modify declaration.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ * builds/unix/configure.raw: Change argument name to `brotli'.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ Add Brotli dependency and required checks.
+
+ Brotli is required for decompressing WOFF2 font directory streams.
+ The library is thus being added as an optional dependency for
+ FreeType.
+
+ * builds/unix/configure.raw: Add checks for `libbrotlidec'.
+ (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBSSTATIC_CONFIG): Updated.
+
+ * devel/ftoption.h, include/freetype/config/ftoption.h
+ (FT_CONFIG_OPTION_USE_BROTLI): New macro.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Write SFNT Offset table.
+
+ * src/sfnt/sfwoff2.c (WRITE_USHORT, WRITE_ULONG): New macros.
+ (compare_tags): New function.
+ (woff2_open_font): Implement it.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ * src/sfnt/sfwoff2.c: #undef macros.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [woff2] Read table and collection directory.
+
+ * include/freetype/internal/wofftypes.h (WOFF2_TtcFontRec): New
+ structure.
+ (WOFF2_HeaderRec): Add more fields.
+
+ * src/sfnt/sfwoff2.c (READ_255USHORT, READ_BASE128, ROUND4): New
+ macros.
+ (Read255UShort, CollectionHeaderSize, compute_first_table_offset):
+ New functions.
+ (ReadBase128): Use `FT_READ_BYTE'.
+ (woff2_open_font): Add functionality to read table directory and
+ collection directory (if present).
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [sfnt] Include `woff2tags.c' for building.
+
+ * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `woff2tags.c'.
+
+ * src/sfnt/sfnt.c: Include `woff2tags.c'.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [sfnt] Add WOFF2 constants.
+
+ Add constants required for WOFF2, and known table tags as defined in
+ the specification. See
+
+ https://www.w3.org/TR/WOFF2/#table_dir_format
+
+ for details.
+
+ * src/sfnt/woff2tags.c, src/sfnt/woff2tags.h: New files.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [sfnt] Read WOFF 2 header.
+
+ Check for WOFF2 tag, call `woff2_open_font', and implement it to read
+ header according to specification.
+
+ * include/freetype/internal/fttrace.h: Add `sfwoff2.c'.
+
+ * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `sfwoff2.c'.
+
+ * src/sfnt/sfnt.c: Include `sfwoff2.c'.
+
+ * src/sfnt/sfobjs.c (sfnt_open_font): Check for `wOF2' tag and call
+ `woff2_open_font'.
+
+ * src/sfnt/sfwoff2.c, src/sfnt/sfwoff2.h: New files.
+
+2019-08-27 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ Add structures for WOFF2.
+
+ Add structures and macro for WOFF 2 header and table directory.
+
+ * include/freetype/internal/wofftypes.h (WOFF2_HeaderRec,
+ WOFF2_TableRec_): New structures.
+
+ * include/freetype/tttags.h (TTAG_wOF2): New macro.
+
+2019-08-26 Werner Lemberg <wl@gnu.org>
+
+ * src/psaux/cffdecode.c (cff_operator_seac): Fix numeric overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16470
+
+2019-08-26 Werner Lemberg <wl@gnu.org>
+
+ [type1] Fix `FT_Get_Var_Axis_Flags' (#56804).
+
+ * src/type1/t1load.c (T1_Get_MM_Var): Allocate space for axis flags.
+ Also remove redundant assignment.
+
+2019-07-24 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftbbox.c (cubic_peak): Sanitize left shift (#56586).
+
+2019-07-22 Weiyi Wu <w1w2y3@gmail.com>
+
+ * src/cid/cidload.c (cid_hex_to_binary): Fix typo (#56653).
+
+2019-07-12 Werner Lemberg <wl@gnu.org>
+
+ [sfnt, winfonts] Avoid memory leaks in case of error (#56587).
+
+ * src/sfnt/sfwoff.c (woff_open_font): Call `FT_FRAME_EXIT' in case
+ of error.
+
+ * src/winfonts/winfnt.c (fnt_face_get_dll_font): Ditto.
+
+2019-07-12 Ben Wagner <bungeman@google.com>
+
+ Properly handle phantom points for variation fonts (#56601).
+
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Scale phantom
+ points if HVAR and/or VVAR is present.
+
+2019-07-04 Werner Lemberg <wl@gnu.org>
+
+ [psaux] (2/2) Handle fonts that use SEAC for ligatures (#56580).
+
+ The same as previous commit but for the old engine.
+
+ * src/psaux/t1decode.c (t1operator_seac): Implement it.
+
+2019-07-04 Chris Liddell <chris.liddell@artifex.com>
+
+ [psaux] (1/2) Handle fonts that use SEAC for ligatures (#56580).
+
+ As originally intended, a Type 1 SEAC charstring would be used for
+ an accented glyph (like `acaron' or `uumlaut'), where the advance
+ width of the SEAC glyph is the same as that of the `base' glyph
+ (like `a' or `u'). In this case it is not uncommon for the SEAC
+ glyph to not use an (H)SBW opcode of its own but to rely on the
+ value from the base glyph.
+
+ However, out-of-spec fonts also use SEAC glyphs for ligatures (like
+ `oe' or `fi'), and in those cases the overall advance width is
+ greater than that of the `base' glyph. For this reason we have to
+ allow that the SEAC glyph can have an (H)SBW value of its own, and
+ if it has, retain this value, rather than the one from the base
+ glyph.
+
+ * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escSEAC>:
+ Implement it.
+
2019-07-01 Werner Lemberg <wl@gnu.org>
* Version 2.10.1 released.
@@ -88,7 +1255,7 @@
* include/freetype/ftmodapi.h (FT_DebugHook_Func): Return error.
Fix a warning by adding a return value as in `TT_RunIns',
- which should not be a compatibility issue.
+ which should not be a compatibility issue.
2019-06-11 Alexei Podtelezhnikov <apodtele@gmail.com>
@@ -99,7 +1266,7 @@
[gzip] Add support for `gzip' encoded header.
* src/gzip/ftgzip.c (FT_Gzip_Uncompress): Modify the the call to
- `inflateInit2' to enable support for `gzip' encoded headers.
+ `inflateInit2' to enable support for `gzip' encoded headers.
2019-06-10 Alexei Podtelezhnikov <apodtele@gmail.com>
@@ -3104,7 +4271,7 @@
----------------------------------------------------------------------------
-Copyright (C) 2018-2019 by
+Copyright (C) 2018-2020 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used, modified,