|
@@ -1,3 +1,3514 @@
|
|
|
|
|
+2023-08-25 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * Version 2.13.2 released.
|
|
|
|
|
+ ==========================
|
|
|
|
|
+
|
|
|
|
|
+ Tag sources with `VER-2-13-2'.
|
|
|
|
|
+
|
|
|
|
|
+ * docs/VERSION.TXT: Add entry for version 2.13.2.
|
|
|
|
|
+ * docs/CHANGES: Updated.
|
|
|
|
|
+ * docs/release, docs/README, builds/macs/README: Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * README, 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.13.1/2.13.2/, s/2131/2132/.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
|
|
|
|
|
+
|
|
|
|
|
+ * builds/unix/configure.raw (version_info): Set to 26:1:20.
|
|
|
|
|
+ * CMakeLists.txt (VERSION_PATCH): Set to 2.
|
|
|
|
|
+
|
|
|
|
|
+2023-08-25 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftcalc.c (FT_MulAddFix): Simplify 32-bit rounding.
|
|
|
|
|
+
|
|
|
|
|
+2023-08-25 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Fix clang warnings.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cffload.c (cff_blend_doBlend): Fix type of `sum`.
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Fix type of
|
|
|
|
|
+ `word_delta_count`.
|
|
|
|
|
+
|
|
|
|
|
+2023-08-24 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * subprojects/*.wrap: Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-08-24 Hugh McMaster <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ builds/unix/configure.raw: Use variable to specify minimum Python version.
|
|
|
|
|
+
|
|
|
|
|
+2023-08-24 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * builds/toplevel.mk: Simplify version extraction.
|
|
|
|
|
+
|
|
|
|
|
+2023-08-22 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Improve the matrix degeneracy check.
|
|
|
|
|
+
|
|
|
|
|
+ Also fixes #1251.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftcalc.c (FT_Matrix_Check): To avoid overflow, scale by shifting.
|
|
|
|
|
+ * include/freetype/internal/ftcalc.h (FT_Matrix_Check): Update description.
|
|
|
|
|
+
|
|
|
|
|
+2023-08-22 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ builds/toplevel.mk: Don't use `\#` in functions.
|
|
|
|
|
+
|
|
|
|
|
+ The behaviour changed in GNU make 4.3, where `#` (without the backslash)
|
|
|
|
|
+ would be necessary. Using a variable instead the code works with both older
|
|
|
|
|
+ and newer GNU make versions.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1252.
|
|
|
|
|
+
|
|
|
|
|
+2023-08-19 Hugh McMaster <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ builds/freetype.mk: Invoke `mkdocs` as a Python module
|
|
|
|
|
+
|
|
|
|
|
+ FreeType's `refdoc` target currently allows users to override the
|
|
|
|
|
+ default Python path, which is useful for testing and development.
|
|
|
|
|
+
|
|
|
|
|
+ In contrast, `mkdocs` is invoked via the default Python path.
|
|
|
|
|
+
|
|
|
|
|
+ Invoking `mkdocs` via Python's module syntax allows for greater
|
|
|
|
|
+ flexibility, although there is no change for the default use case.
|
|
|
|
|
+
|
|
|
|
|
+2023-08-17 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Avoid UB with memcpy
|
|
|
|
|
+
|
|
|
|
|
+ `FT_NEW_ARRAY(p, 0)` sets `p` to `NULL`. `FT_Stream_ReadAt` with a
|
|
|
|
|
+ memory based stream uses `FT_MEM_COPY` which is `memcpy` which specifies
|
|
|
|
|
+ that it is undefined behavior for either the `src` or `dst` to be
|
|
|
|
|
+ `NULL`. Instead of forcing all callers work around calling
|
|
|
|
|
+ `FT_Stream_Read` when `buffer == NULL && count == 0` do the check in
|
|
|
|
|
+ `FT_StreamRead`. This allows any call with `count == 0` to succesfully
|
|
|
|
|
+ read zero bytes without UB.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftstream.c (FT_Stream_ReadAt): skip `FT_MEM_COPY` when
|
|
|
|
|
+ `count == 0`. (FT_Stream_TryRead): ditto
|
|
|
|
|
+
|
|
|
|
|
+ Fixes: #1250
|
|
|
|
|
+
|
|
|
|
|
+2023-08-12 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Fix warnings in tracing messages for 32bit compilation.
|
|
|
|
|
+
|
|
|
|
|
+ Since we now require C99, use `%td` for `ptrdiff_t` and `%zu` for `size_t`.
|
|
|
|
|
+
|
|
|
|
|
+2023-08-04 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Avoid overflow in COLR bounds checks.
|
|
|
|
|
+
|
|
|
|
|
+ The values read into `base_glyphs_offset_v1` and `layer_offset_v1` may
|
|
|
|
|
+ be in the range 0xFFFFFFFD-0xFFFFFFFF. On systems where `unsigned long`
|
|
|
|
|
+ is 32 bits adding 4 to such values will wrap and pass bounds checks but
|
|
|
|
|
+ accessing values at such offsets will be out of bounds.
|
|
|
|
|
+
|
|
|
|
|
+ On the other hand `table_size` has already been tested to be at least
|
|
|
|
|
+ `COLRV1_HEADER_SIZE` (34) so it is safe to subtract 4 from it.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (tt_face_load_colr): subtract 4 from `table_size`
|
|
|
|
|
+ instead of adding 4 to font data offsets in bounds checks
|
|
|
|
|
+
|
|
|
|
|
+ Fixes: https://crbug.com/1469348
|
|
|
|
|
+
|
|
|
|
|
+2023-08-02 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (open_face_from_buffer): Silence `maybe-uninitialized`.
|
|
|
|
|
+
|
|
|
|
|
+ We never call this function without a `driver_name` (#1245).
|
|
|
|
|
+
|
|
|
|
|
+2023-07-29 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Reduce v40 footprint.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_HInt_Glyph, tt_loader_set_pp,
|
|
|
|
|
+ tt_loader_init): Refactor code.
|
|
|
|
|
+
|
|
|
|
|
+2023-07-27 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Remove Infinality for good (remaining bits).
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttobjs.h: Remove remaining fields.
|
|
|
|
|
+ * src/truetype/ttinterp.c: Do not initialize them.
|
|
|
|
|
+ * include/freetype/internal/tttypes.h: Remove descriptions.
|
|
|
|
|
+
|
|
|
|
|
+2023-07-27 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Remove Infinality for good.
|
|
|
|
|
+
|
|
|
|
|
+ Remove everything `#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY`,
|
|
|
|
|
+ which was undefined for a while now.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/tttypes.h: Ditto.
|
|
|
|
|
+ * src/truetype/truetype.c: Ditto.
|
|
|
|
|
+ * src/truetype/ttdriver.c: Ditto.
|
|
|
|
|
+ * src/truetype/ttgload.c: Ditto.
|
|
|
|
|
+ * src/truetype/ttinterp.c: Ditto.
|
|
|
|
|
+ * src/truetype/ttinterp.h: Ditto.
|
|
|
|
|
+ * src/truetype/ttobjs.c: Ditto.
|
|
|
|
|
+ * src/truetype/ttsubpix.[ch]: Remove files.
|
|
|
|
|
+ * src/truetype/rules.mk: Don't mention "ttsubpix.c".
|
|
|
|
|
+
|
|
|
|
|
+2023-07-21 Jouk Jansen <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * vms_make.com: Provide separate library compiled with C++.
|
|
|
|
|
+
|
|
|
|
|
+ Some types on OpenVMS x86_64 (for example, `long') have different sizes
|
|
|
|
|
+ depending on whether compiled with either C or C++. In particular,
|
|
|
|
|
+ X-Windows applications crash if linked with the C++ version.
|
|
|
|
|
+
|
|
|
|
|
+ This patch makes `vms_make.com` create a second version of the FreeType
|
|
|
|
|
+ library compiled with C++ if OpenVMS is running on the x86_64 platform.
|
|
|
|
|
+
|
|
|
|
|
+2023-07-21 Jouk Jansen <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * vms_make.com: Fix typos.
|
|
|
|
|
+
|
|
|
|
|
+2023-07-21 Jouk Jansen <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/smooth/ftgrays.c (FT_SSE2): Fix definition for VMS.
|
|
|
|
|
+
|
|
|
|
|
+2023-07-19 Jouk Jansen <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ vms_make.com: Make use of additional libraries optional.
|
|
|
|
|
+
|
|
|
|
|
+ Check whether `.olb` files are present.
|
|
|
|
|
+
|
|
|
|
|
+ Also check for the HarfBuzz library.
|
|
|
|
|
+
|
|
|
|
|
+2023-07-19 Jouk Jansen <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ vms_make.com: Add `/warn=noinfo` to `CFLAGS`.
|
|
|
|
|
+
|
|
|
|
|
+ This reduces enormously the informationals while compiling on x86_64 (i.e.,
|
|
|
|
|
+ which `.h` file is inluded form where).
|
|
|
|
|
+
|
|
|
|
|
+2023-07-18 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [woff2] Clean up on large brotli expansion
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfwoff2.c (woff2_open_font): set error and goto cleanup
|
|
|
|
|
+
|
|
|
|
|
+ Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60711
|
|
|
|
|
+
|
|
|
|
|
+2023-07-16 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [woff2] Avoid allocation bomb.
|
|
|
|
|
+
|
|
|
|
|
+ This is a fix for commit 85167dbd5, reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60615
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfwoff2.c (MAX_SFNT_SIZE): New macro.
|
|
|
|
|
+ (woff2_open_font): Use it to limit the maximum size of an uncompressed WOFF2
|
|
|
|
|
+ font.
|
|
|
|
|
+
|
|
|
|
|
+2023-07-14 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cff] Fix compiler warning.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffparse.c, src/cff/cffparse.h: Make `cff_parse_fixed` a local
|
|
|
|
|
+ function.
|
|
|
|
|
+
|
|
|
|
|
+2023-07-14 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [woff2] Remove sfnt size guess check
|
|
|
|
|
+
|
|
|
|
|
+ In WOFF the `totalSfntSize` must be correct, however in WOFF2 this value
|
|
|
|
|
+ is now just a hint and a conforming implementation must not reject
|
|
|
|
|
+ otherwise valid data if the `totalSfntSize` turns out not to be exact.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfwoff2.c (woff2_open_font): remove check that uncompressed
|
|
|
|
|
+ woff2 data would fit in the sfnt size guess.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes: #1235
|
|
|
|
|
+
|
|
|
|
|
+2023-07-14 Skef Iterum <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cff] Make blend operator work with floats in private dicts.
|
|
|
|
|
+
|
|
|
|
|
+ The CFF2 blend operator takes N default values and corresponding
|
|
|
|
|
+ sets of deltas and pushes N values specific to a designspace
|
|
|
|
|
+ location. CFF has a floating point numeric type and the FreeType
|
|
|
|
|
+ blending code was not converting those into its internal 16.16
|
|
|
|
|
+ Fixed type format.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1243.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffparse.c (do_fixed): Handle floating point numbers.
|
|
|
|
|
+ Also fix scaling overflow check for integer-to-fixed conversion.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffload.c (cff_blend_doBlend): Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-07-08 Hin-Tak Leung <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Hint_Glyph): More mostly cosmetic update.
|
|
|
|
|
+
|
|
|
|
|
+ This is a follow-up to commit 49c74ac02, which creates a new local variable
|
|
|
|
|
+ "exec = loader->exec", and shortening a lot of "loader->exec". This commit
|
|
|
|
|
+ does two more such changes missed in that first commit.
|
|
|
|
|
+
|
|
|
|
|
+2023-07-06 Hugh McMaster <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [gzip] Don't compile internal zlib development files when using system zlib.
|
|
|
|
|
+
|
|
|
|
|
+ `src/gzip/rules.mk` compiles the internal zlib sources even when using the
|
|
|
|
|
+ zlib development files provided by a host system. If the internal zlib
|
|
|
|
|
+ development files are not present, FreeType fails to build from source.
|
|
|
|
|
+
|
|
|
|
|
+ This patch ensures the internal zlib development files are only
|
|
|
|
|
+ prerequisites when not using zlib development files on a host system.
|
|
|
|
|
+
|
|
|
|
|
+ * src/gzip/rules.mk (GZIP_DRV_SRCS): Define conditionally.
|
|
|
|
|
+
|
|
|
|
|
+2023-06-24 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * Version 2.13.1 released.
|
|
|
|
|
+ ==========================
|
|
|
|
|
+
|
|
|
|
|
+ Tag sources with `VER-2-13-1'.
|
|
|
|
|
+
|
|
|
|
|
+ * docs/VERSION.TXT: Add entry for version 2.13.1.
|
|
|
|
|
+ * docs/CHANGES: Updated.
|
|
|
|
|
+ * docs/release, docs/README, builds/macs/README: Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * README, 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.13.0/2.13/1/, s/2130/2131/.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
|
|
|
|
|
+
|
|
|
|
|
+ * builds/unix/configure.raw (version_info): Set to 26:0:20.
|
|
|
|
|
+ * CMakeLists.txt (VERSION_PATCH): Set to 1.
|
|
|
|
|
+
|
|
|
|
|
+ * subprojects/libpng.wrap, subprojects/zlib.wrap, subprojects/dlg: Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-06-09 suzuki toshiya <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Comment fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-06-09 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sdf] Correct handling of empty glyphs.
|
|
|
|
|
+
|
|
|
|
|
+ This is a refinement of commit 7b3ebb9.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sdf/ftsdfrend.c (ft_sdf_render): Goto 'Exit' instead of directly
|
|
|
|
|
+ returning.
|
|
|
|
|
+ (fd_bsdf_render): Ditto, also taking care of setting `FT_GLYPH_OWN_BITMAP`
|
|
|
|
|
+ correctly.
|
|
|
|
|
+
|
|
|
|
|
+2023-06-05 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Mark FT_Renderer_Class::raster_class as pointer to const
|
|
|
|
|
+
|
|
|
|
|
+ The `FT_DEFINE_RASTER_FUNCS` macro declares a `const FT_Raster_Funcs`.
|
|
|
|
|
+ The address of the definition is taken and assigned to
|
|
|
|
|
+ `FT_Renderer_Class::raster_class` which is currently `FT_Raster_Funcs*`.
|
|
|
|
|
+ Until recently the `const` was cast away and with the removal of the
|
|
|
|
|
+ cast there are now warnings about dropping this `const`. Instead of
|
|
|
|
|
+ adding back the casts, make `FT_Renderer_Class::raster_class` a pointer
|
|
|
|
|
+ to const, as is done with pointers in other interfaces.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftrender.h (FT_Renderer_Class_): mark `raster_class`
|
|
|
|
|
+ as const.
|
|
|
|
|
+
|
|
|
|
|
+2023-06-03 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ 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.
|
|
|
|
|
+
|
|
|
|
|
+2023-06-03 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ */*: 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.
|
|
|
|
|
+
|
|
|
|
|
+2023-06-03 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Minor formatting.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-23 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ 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`.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-23 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ docs/DEBUG: Formatting.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-20 suzuki toshiya <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [doc] Type1 GX (sfnt-wrapped Type1) is not supported.
|
|
|
|
|
+
|
|
|
|
|
+ * docs/formats.txt: Clarify the reference of Type1 GX,
|
|
|
|
|
+ and state that this format is not supported. This
|
|
|
|
|
+ is because the content `TYP1' table is not exactly same
|
|
|
|
|
+ with the Type1 font format specification; no eexec
|
|
|
|
|
+ encryption is used. For detail and concrete examples,
|
|
|
|
|
+ see the analysis on:
|
|
|
|
|
+
|
|
|
|
|
+ https://gitlab.freedesktop.org/freetype/freetype/-/issues/1231
|
|
|
|
|
+
|
|
|
|
|
+2023-05-19 Craig White <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Add missing end quote of a string in the example code of FT_Trace_Set_Level
|
|
|
|
|
+
|
|
|
|
|
+2023-05-19 Seigo Nonaka <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Reduce heap allocation of `deltaSet` variation data.
|
|
|
|
|
+
|
|
|
|
|
+ `deltaSet` is an array of packed integers that can be 32 bits, 16 bits, or
|
|
|
|
|
+ 8 bits. Before this change, these values were unpacked to 32-bit integers.
|
|
|
|
|
+ However, this can cause big heap allocations, e.g., around 500 KByte for
|
|
|
|
|
+ 'NotoSansCJK'. To reduce this amount, store the packed integers and unpack
|
|
|
|
|
+ them just before passing to the calculation. At calculation time, due to
|
|
|
|
|
+ the variable length of region indices, temporary heap allocations are
|
|
|
|
|
+ necessary. This heap allocation is not negligible and visible in `ftbench`
|
|
|
|
|
+ results. So, use stack-allocated arrays for short array calculations.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1230.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/ftmmtypes.h (GX_ItemVarDataRec): New fields
|
|
|
|
|
+ `wordDeltaCount` and `longWords`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Load packed
|
|
|
|
|
+ data.
|
|
|
|
|
+ (tt_var_get_item_delta): Unpack data before applying.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-17 Jouk Jansen <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ vms_make.com: Create shared executable for x86 version of OpenVMS.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-15 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Add new load flag `FT_LOAD_NO_SVG`.
|
|
|
|
|
+
|
|
|
|
|
+ Modern color fonts often contain both an 'SVG' and 'COLR' table. FreeType
|
|
|
|
|
+ always preferred 'SVG' over 'COLR' (this was a design decision), however,
|
|
|
|
|
+ this might not be the right choice for the user. The new flags makes
|
|
|
|
|
+ FreeType ignore the 'SVG' table while loading a glyph.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1229.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/freetype.h (FT_LOAD_NO_SVG): New macro.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (FT_Load_Glyph), src/cff/cffgload.c (cff_slot_load),
|
|
|
|
|
+ src/truetype/ttgload.c (TT_Load_Glyph): Use it.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-13 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ .mailmap: Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-13 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cache] Merge functions.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftccache.c (FTC_Cache_Init): Merge into...
|
|
|
|
|
+ (ftc_cache_done): ... this function, with unnecessary checks removed.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-13 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cache] Minor casting and cosmetic updates.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftcglyph.c (ftc_gcache_{init,done}): Remove casting.
|
|
|
|
|
+ (FTC_GCache_Lookup): Cosmetic variable renaming.
|
|
|
|
|
+ * src/cache/ftcsbits.c (ftc_snode_compare): Formatting.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-12 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftcache.h: Typo, punctuation.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-12 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftcache.h: Formatted and updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-12 suzuki toshiya <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/t1types.h: Fix the indentation.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-11 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cache] Revise the dynamic hash table accounting.
|
|
|
|
|
+
|
|
|
|
|
+ Instead of counting entries relative to the middle of the hash table,
|
|
|
|
|
+ this switches to the absolute counter with the full index range mask.
|
|
|
|
|
+ As a result, some calculations become a bit simpler. The cache resizing
|
|
|
|
|
+ logic stays largely the same.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftccache.h (FTC_NODE_TOP_FOR_HASH): Revised with new counter.
|
|
|
|
|
+ * src/cache/ftccache.c (ftc_get_top_node_for_hash): Ditto.
|
|
|
|
|
+ (ftc_cache_resize): Simplify reallocations and stop their zeroing.
|
|
|
|
|
+ (ftc_cache_init): Stop over-allocating but keep zeroing initially.
|
|
|
|
|
+ (FTC_Cache_Clear, FTC_Cache_RemoveFaceID): Updated accordingly.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-11 suzuki toshiya <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [t1cid] Set FT_FACE_FLAG_CID_KEYED.
|
|
|
|
|
+
|
|
|
|
|
+ * cidobjs.c (cid_face_init): Set FT_FACE_FLAG_CID_KEYED.
|
|
|
|
|
+
|
|
|
|
|
+ * cidriver.c (cid_get_is_cid): Comment about the case that
|
|
|
|
|
+ is_cid cannot guarantee the glyph collection specification.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-09 Jouk Jansen <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/smooth/ftgrays.c (FT_SSE2): Don't define for VMS.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffdrivr.c (cff_glyph_load): Fix guard for `size`.
|
|
|
|
|
+
|
|
|
|
|
+ This was forgotten to change in commit 2b54eba36b (in May 2004).
|
|
|
|
|
+
|
|
|
|
|
+ Reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=58739
|
|
|
|
|
+
|
|
|
|
|
+2023-05-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ 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`.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/psaux/t1cmap.c: Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/bzip2/ftbzip2.c: Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cache] Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftcglyph.c, src/cache/ftcglyph.h (FTC_GNode_Compare): Remove
|
|
|
|
|
+ redundant function. It is equivalent to `ftc_gnode_compare` and becomes
|
|
|
|
|
+ completely meaningless with fixed signatures.
|
|
|
|
|
+ Update all callers.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftcsbits.c, src/cache/ftcsbits.h (FTC_SNode_Compare): Remove
|
|
|
|
|
+ redundant function. It is equivalent to `ftc_snode_compare` and becomes
|
|
|
|
|
+ completely meaningless with fixed signatures.
|
|
|
|
|
+ Update all callers.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sdf] Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/svg/ftsvg.c: Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [raster] Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [smooth] Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [pshinter] Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+ * src/pshinter/pshrec.c (t1_hints_close, t1_hints_apply): New wrapper
|
|
|
|
|
+ functions.
|
|
|
|
|
+ (t1_hints_funcs_init): Use them.
|
|
|
|
|
+ (t2_hints_close, t2_hints_apply): New wrapper functions.
|
|
|
|
|
+ (t2_hints_funcs_init): Use them.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [autofit] Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcmap: Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/pcf/pcfdrivr.c: Signature fix.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/winfonts/winfnt.c: Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/type42/t42parse.c: Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [pfr] Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cid/cidload.c: Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffcmap.c: Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1load.c: Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Signature fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/type42/t42drivr.c: Clean up interface.
|
|
|
|
|
+
|
|
|
|
|
+ Ensure that all driver functions use the signature of the service or driver.
|
|
|
|
|
+ This avoids pointer mismatches, which are technically undefined behaviour.
|
|
|
|
|
+ Recent compilers are more picky in catching them as part of Control Flow
|
|
|
|
|
+ Integrity tests.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/*: Clean up interface.
|
|
|
|
|
+
|
|
|
|
|
+ Ensure that all driver functions use the signature of the service or driver.
|
|
|
|
|
+ This avoids pointer mismatches, which are technically undefined behaviour.
|
|
|
|
|
+ Recent compilers are more picky in catching them as part of Control Flow
|
|
|
|
|
+ Integrity tests.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/*: Clean up interface.
|
|
|
|
|
+
|
|
|
|
|
+ Ensure that all driver functions use the signature of the service or driver.
|
|
|
|
|
+ This avoids pointer mismatches, which are technically undefined behaviour.
|
|
|
|
|
+ Recent compilers are more picky in catching them as part of Control Flow
|
|
|
|
|
+ Integrity tests.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfdriver.c, src/sfnt/ttbdf.c: Clean up interface.
|
|
|
|
|
+
|
|
|
|
|
+ Ensure that all driver functions use the signature of the service or driver.
|
|
|
|
|
+ This avoids pointer mismatches, which are technically undefined behaviour.
|
|
|
|
|
+ Recent compilers are more picky in catching them as part of Control Flow
|
|
|
|
|
+ Integrity tests.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfdriver.c (sfnt_load_table): New wrapper function.
|
|
|
|
|
+ (sfnt_service_sfnt_table): Use it.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/psnames/psmodule.c: Use `FT_CALLBACK_DEF`.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/pfr/pfrdrivr.c: face -> pfrface, pfrface -> face.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/pcf/pcfdrivr.c: Clean up interface.
|
|
|
|
|
+
|
|
|
|
|
+ Ensure that all driver functions use the signature of the service or driver.
|
|
|
|
|
+ This avoids pointer mismatches, which are technically undefined behaviour.
|
|
|
|
|
+ Recent compilers are more picky in catching them as part of Control Flow
|
|
|
|
|
+ Integrity tests.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cid/cidriver.c: Clean up interface.
|
|
|
|
|
+
|
|
|
|
|
+ Ensure that all driver functions use the signature of the service or driver.
|
|
|
|
|
+ This avoids pointer mismatches, which are technically undefined behaviour.
|
|
|
|
|
+ Recent compilers are more picky in catching them as part of Control Flow
|
|
|
|
|
+ Integrity tests.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/bdf/bdfdrivr.c: Clean up interface.
|
|
|
|
|
+
|
|
|
|
|
+ Ensure that all driver functions use the signature of the service or driver.
|
|
|
|
|
+ This avoids pointer mismatches, which are technically undefined behaviour.
|
|
|
|
|
+ Recent compilers are more picky in catching them as part of Control Flow
|
|
|
|
|
+ Integrity tests.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/*: Clean up interface.
|
|
|
|
|
+
|
|
|
|
|
+ Ensure that all driver functions use the signature of the service or driver.
|
|
|
|
|
+ This avoids pointer mismatches, which are technically undefined behaviour.
|
|
|
|
|
+ Recent compilers are more picky in catching them as part of Control Flow
|
|
|
|
|
+ Integrity tests.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-06 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Fix style name handling for variation fonts.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/tttypes.h (TT_FaceRec): New field
|
|
|
|
|
+ `non_var_style_name`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfobjs.c (sfnt_load_face): Initialize `non_var_style_name`.
|
|
|
|
|
+ (sfnt_done_face): Free `non_var_style_name`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (TT_Set_Named_Instance): Restore non-VF style name
|
|
|
|
|
+ if switching back to non-VF mode.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-06 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Fix PostScript name handling for variation fonts.
|
|
|
|
|
+
|
|
|
|
|
+ A variation font's PostScript name of a named instance is usually different
|
|
|
|
|
+ from the PostScript name of an unnamed instance. However, if a change
|
|
|
|
|
+ between a named instance and an unnamed instance with exactly the same
|
|
|
|
|
+ design axis values happened, it was possible that the PostScript name wasn't
|
|
|
|
|
+ correctly updated.
|
|
|
|
|
+
|
|
|
|
|
+ This commit reorganizes the code to handle this issue within the top-level
|
|
|
|
|
+ API functions, using a new service to trigger recomputation of the
|
|
|
|
|
+ PostScript name.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/services/svmm.h (FT_Construct_PS_Name_Func): New
|
|
|
|
|
+ typedef.
|
|
|
|
|
+ (FT_Service_MultiMasters): New field `construct_ps_name`.
|
|
|
|
|
+ (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
|
|
|
|
|
+ FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Call
|
|
|
|
|
+ `mm->construct_ps_name` to handle `postscript_name`.
|
|
|
|
|
+ (FT_Set_Named_Instance): Call `mm->construct_ps_name` to handle
|
|
|
|
|
+ `postscript_name`.
|
|
|
|
|
+ Use shortcut.
|
|
|
|
|
+ * src/cff/cffdrivr.c (cff_construct_ps_name): New function.
|
|
|
|
|
+ (cff_service_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_set_mm_blend): Don't handle `postscript_name`.
|
|
|
|
|
+ (TT_Set_MM_Blend): Simplify.
|
|
|
|
|
+ (TT_Set_Named_Instance): Return -1 if axis values haven't changed.
|
|
|
|
|
+ Don't set `face_index`.
|
|
|
|
|
+ (tt_construct_ps_name): New function.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.h: Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1driver.c (t1_service_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1load.c (T1_Set_MM_Blend): Simplify.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-06 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/services/svmm.h: Minor changes.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-06 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Fix deactivation of variation font handling.
|
|
|
|
|
+
|
|
|
|
|
+ According to the documentation, the functions `FT_Set_Named_Instance`,
|
|
|
|
|
+ `FT_Set_MM_Design_Coordinates`, `FT_Set_Var_Design_Coordinates`, and
|
|
|
|
|
+ `FT_Set_Var_Blend_Coordinates` can unset the `FT_FACE_FLAG_VARIATION` flag.
|
|
|
|
|
+ (The same is true for `FT_Set_MM_WeightVector` but this information was
|
|
|
|
|
+ accidentally omitted from the documentation.)
|
|
|
|
|
+
|
|
|
|
|
+ However, if a call of these functions didn't change the axis values this
|
|
|
|
|
+ could fail because internal shortcuts exited too early.
|
|
|
|
|
+
|
|
|
|
|
+ This commit reorganizes the code to handle `FT_FACE_FLAG_VARIATION` in the
|
|
|
|
|
+ top-level API functions, also taking care of the issue at hand.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftmm.c (FT_Set_MM_Design_Coordinates, FT_Set_MM_WeightVector,
|
|
|
|
|
+ FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates,
|
|
|
|
|
+ FT_Set_Var_Blend_Coordinates): Handle `FT_FACE_FLAG_VARIATION`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design,
|
|
|
|
|
+ TT_Set_Named_Instance) Don't handle `FT_FACE_FLAG_VARIATION`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_WeightVector,
|
|
|
|
|
+ T1_Set_MM_Design): Ditto.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffobjs.c (cff_face_init): Use `FT_Set_Named_Instance` instead of
|
|
|
|
|
+ low-level functions.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttobjs.c (tt_face_init): Ditto.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-06 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ s/set_instance/set_named_instance/
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/services/svmm.h (FT_Set_Instance_Func): Renamed
|
|
|
|
|
+ to...
|
|
|
|
|
+ (FT_Set_Named_Instance_Func): ...this.
|
|
|
|
|
+ (FT_Service_MultiMasters): Rename `set_instance` to `set_named_instance`.
|
|
|
|
|
+ (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftmm.c (FT_Set_Named_Instance): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffdrivr.c (cff_set_instance): Renamed to...
|
|
|
|
|
+ (cff_set_named_instance): ...this.
|
|
|
|
|
+ (cff_service_multi_masters): Updated.
|
|
|
|
|
+ * src/cff/cffobjs.c (cff_face_init): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1driver.c (t1_service_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-06 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ New Variation Font function `FT_Get_Default_Named_Instance`.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftmm.h, src/base/ftmm.c (FT_Get_Default_Named_Instance):
|
|
|
|
|
+ New function.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/services/svmm.h
|
|
|
|
|
+ (FT_Get_Default_Named_Instance_Func): New typedef.
|
|
|
|
|
+ (FT_Service_MultiMasters): New field `get_default_named_instance`.
|
|
|
|
|
+ (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/tttypes.h (TT_Face): New field
|
|
|
|
|
+ `var_default_named_instance`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfobjc.s (sfnt_init_face): Initialize
|
|
|
|
|
+ `var_default_named_instance`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffdrivr.c (cff_get_default_named_instance): New function.
|
|
|
|
|
+ (cff_service_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (TT_Get_MM_Var): Initialize
|
|
|
|
|
+ `var_default_named_instance`.
|
|
|
|
|
+ (TT_Get_Default_Named_Instance): New function.
|
|
|
|
|
+ * src/truetype/ttgxvar.h: Updated.
|
|
|
|
|
+ * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1driver.c (t1_service_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * docs/CHANGES: Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-06 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cid] Improve tracing messages; formatting.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftccache.c (ftc_node_hash_unlink): Minor.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Purge backwards.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cache] Revise list cleansing.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Use one loop to
|
|
|
|
|
+ do it.
|
|
|
|
|
+ * src/cache/ftcmanag.c (FTC_Manager_Compress, FTC_Manager_FlushN):
|
|
|
|
|
+ Streamline loops.
|
|
|
|
|
+
|
|
|
|
|
+2023-05-03 suzuki toshiya <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [t1cid] Improve cid_get_cid_from_glyph_index().
|
|
|
|
|
+
|
|
|
|
|
+ Update cid_get_cid_from_glyph_index() to
|
|
|
|
|
+ return an error and CID=0 in the case that
|
|
|
|
|
+ the specified glyph index points to an invalid
|
|
|
|
|
+ entry.
|
|
|
|
|
+
|
|
|
|
|
+ cidgload.h (cid_compute_fd_and_offsets):
|
|
|
|
|
+ Declare new helper function to set the
|
|
|
|
|
+ fd_select and 2 offsets to access the glyph
|
|
|
|
|
+ description data.
|
|
|
|
|
+
|
|
|
|
|
+ cidgload.c (cid_compute_fd_and_offsets):
|
|
|
|
|
+ Move the part loading fd_select and 2 offsets
|
|
|
|
|
+ from cid_load_glyph() to here. If the loaded
|
|
|
|
|
+ parameters are broken, return the Invalid_Offset
|
|
|
|
|
+ error. This function does not load the glyph
|
|
|
|
|
+ data, only fills these parameters.
|
|
|
|
|
+
|
|
|
|
|
+ (cid_load_glyph): Use new helper function in above.
|
|
|
|
|
+
|
|
|
|
|
+ cidriver.c (cid_get_cid_from_glyph_index):
|
|
|
|
|
+ Check whether the requested glyph index points
|
|
|
|
|
+ to a valid entry, by calling cid_compute_fd_and_offsets().
|
|
|
|
|
+ If it is valid, fill the cid by the glyph
|
|
|
|
|
+ index (=CID). If it is invalid, return an
|
|
|
|
|
+ error and fill the cid by 0.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-30 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ API documentation: Re-organize chapters and sections
|
|
|
|
|
+
|
|
|
|
|
+ * Split the very long 'Base Interface' section into smaller sections.
|
|
|
|
|
+ * Split the 'Core API' chapter into two chapters.
|
|
|
|
|
+ * Remove single enumeration values from `@order` fields since they have no
|
|
|
|
|
+ effect.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-29 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/pngshim.c (Load_SBit_Png): Remove FALL_THROUGH warning.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-28 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttload.c (tt_face_load_font_dir): Add another guard.
|
|
|
|
|
+
|
|
|
|
|
+ Reject 'OTTO' fonts with no valid tables.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-28 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffdrivr/c (cff_get_ps_name): Avoid unnecessary crash.
|
|
|
|
|
+
|
|
|
|
|
+ The situation can happen if `FT_New_Face` (or one of its siblings) is called
|
|
|
|
|
+ with a negative index to get the number of contained faces, followed
|
|
|
|
|
+ immediately by a call to `FT_Get_Postscript_Name`. While this is not a valid
|
|
|
|
|
+ use of the FreeType library there is no need for a crash.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1219.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-28 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffdrivr.c (cff_ps_get_font_info): Reject 'CFF2' format.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-28 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cid/cidgload.c (cid_load_glyph): Fix compiler warnings.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-28 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Minor documentation updates.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-27 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/ttgxvar.c: Minor changes.
|
|
|
|
|
+
|
|
|
|
|
+ (TT_Get_MM_Var): Improve tracing messages.
|
|
|
|
|
+ (tt_set_mm_blend): Minor speed-up.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-27 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ s/this is,/that is,/
|
|
|
|
|
+
|
|
|
|
|
+2023-04-27 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [bdf] Clean up the atom property parsing.
|
|
|
|
|
+
|
|
|
|
|
+ * src/bdflib.c (bdf_is_atom_): Refactor code with fewer checks.
|
|
|
|
|
+ (bdf_list_join_): Return NULL.
|
|
|
|
|
+ (bdf_add_comment_): Use const argument.
|
|
|
|
|
+ (bdf_get_property): Ditto, ditto, make the function static.
|
|
|
|
|
+ * src/bdf.h (bdf_get_property): Remove prototype.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-25 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Improve/add source comments and documentation.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-25 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Fix handling of PS names for Variation Fonts.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfdriver.c (get_win_string, get_apple_string): Continue
|
|
|
|
|
+ construction of string if an invalid character is encountered.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1218.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-24 suzuki toshiya <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [t1cid] Change the trace messages of the charstrings retrieval errors.
|
|
|
|
|
+
|
|
|
|
|
+ The t1cid driver catches 3 types of errors in
|
|
|
|
|
+ the charstrings retrieval;
|
|
|
|
|
+ A) The invalid FD number, there are 2 subtypes;
|
|
|
|
|
+ A-1) FD number is the maximum number fitting to FDBytes.
|
|
|
|
|
+ A-2) FD number is greater than num_dicts.
|
|
|
|
|
+ B) Declared length is overrunning.
|
|
|
|
|
+ C) Declared length is invalid (its end is before its head).
|
|
|
|
|
+
|
|
|
|
|
+ Considering that some widely distributed fonts
|
|
|
|
|
+ (e.g., "CJKV" book by O'Reilly) have A-1 errors
|
|
|
|
|
+ in the unimplemented glyphs, the trace level for
|
|
|
|
|
+ A-1 is calmed to level 1.
|
|
|
|
|
+
|
|
|
|
|
+ The errors A-2, B, and C would be irregular;
|
|
|
|
|
+ their trace levels are kept at level 0, but
|
|
|
|
|
+ the updated trace messages include the CID number.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-24 suzuki toshiya <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Fix `make multi'.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c: Include freetype/internal/services/svmetric.h
|
|
|
|
|
+ for the FT_Service_MetricsVariations type definition.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-19 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [services] FT_Size_Reset_Func to return FT_Error
|
|
|
|
|
+
|
|
|
|
|
+ The `MetricsVariations` `FT_Size_Reset_Func` is currently defined to
|
|
|
|
|
+ return `void`, but the implementations return `FT_Error`. Even though
|
|
|
|
|
+ the pointers passed will be the same at runtime, calling a function
|
|
|
|
|
+ through a pointer of a different type from the original function pointer
|
|
|
|
|
+ type is undefined behavior. This may be caught at runtime by Control
|
|
|
|
|
+ Flow Integrity with something like clang's `cfi-icall`.
|
|
|
|
|
+
|
|
|
|
|
+ Issue: https://crbug.com/1433651
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/services/svmetric.h (FT_Size_Reset_Func):
|
|
|
|
|
+ return `FT_Error` instead of `void`.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-17 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] tt_size_reset_height to take FT_Size
|
|
|
|
|
+
|
|
|
|
|
+ The `MetricsVariations` `FT_Size_Reset_Func` is defined to take an
|
|
|
|
|
+ `FT_Size`. Because `tt_size_reset_height` is to be used as such a
|
|
|
|
|
+ function, it must also take an `FT_Size` instead of a `TT_Size`. Even
|
|
|
|
|
+ though the pointers passed will be the same at runtime, calling a
|
|
|
|
|
+ function through a pointer of a different type from the original
|
|
|
|
|
+ function pointer type is undefined behavior. This may be caught at
|
|
|
|
|
+ runtime by Control Flow Integrity with something like clang's
|
|
|
|
|
+ `cfi-icall`.
|
|
|
|
|
+
|
|
|
|
|
+ Issue: https://crbug.com/1433651
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttobjs.h (tt_size_reset_height): take `FT_Size`
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttobjs.c (tt_size_reset_height): take `FT_Size` and
|
|
|
|
|
+ update documentation
|
|
|
|
|
+
|
|
|
|
|
+2023-04-13 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttinterp.c: Remove outdated comments.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-11 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt, truetype] Add `size_reset` to `MetricsVariations`.
|
|
|
|
|
+
|
|
|
|
|
+ This is a generalization of commit
|
|
|
|
|
+
|
|
|
|
|
+ ```
|
|
|
|
|
+ commit e6699596af5c5d6f0ae0ea06e19df87dce088df8
|
|
|
|
|
+ Author: Werner Lemberg <[email protected]>
|
|
|
|
|
+ Date: Thu Feb 2 11:38:04 2017 +0100
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Fix MVAR post-action handling.
|
|
|
|
|
+ ```
|
|
|
|
|
+
|
|
|
|
|
+ It is also possible for plain `CFF ` style fonts to contain an `fvar` and
|
|
|
|
|
+ `MVAR` table and use `cff_metrics_adjust`. `tt_size_reset` should only be
|
|
|
|
|
+ called with `TT_Size` and never with `CFF_Size`.
|
|
|
|
|
+
|
|
|
|
|
+ Allow the "metrics-variations" service to specify the correct function (if
|
|
|
|
|
+ any) to reset `FT_Size`s after adjusting metrics.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttobjs.c (tt_size_reset): Split off some functionality
|
|
|
|
|
+ into...
|
|
|
|
|
+ (tt_size_reset_height): ... this new function.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttdriver.c (tt_service_metrics_variations): Add
|
|
|
|
|
+ `size_reset`.
|
|
|
|
|
+ (tt_size_select, tt_size_request): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttobjs.h: Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/services/svmetric.h (MetricsVariations): Add
|
|
|
|
|
+ `size_reset`.
|
|
|
|
|
+ (FT_DEFINE_SERVICE_METRICSVARIATIONSREC): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/tttypes.h (TT_FaceRec_): Rename `var` to
|
|
|
|
|
+ `tt_var` and add `face_var`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffdrivr.c (cff_service_metrics_variations): Add `size_reset`.
|
|
|
|
|
+ (cff_hadvance_adjust, cff_metrics_adjust): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffobjs.c (cff_face_init): Use `face_var`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfobjs.c (sfnt_init_face): Initialize `face_var`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttmtx.c (tt_face_get_metrics): Use `tt_var`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_size_reset_iterator): Renamed to...
|
|
|
|
|
+ (ft_size_reset_iterator): ... this new function.
|
|
|
|
|
+ Call `size_reset`.
|
|
|
|
|
+ (tt_apply_mvar): Pass `size_reset` to `ft_size_reset_iterator`.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1211
|
|
|
|
|
+
|
|
|
|
|
+2023-04-10 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffcmap.c (cff_cmap_encoding_char_next): Abbreviate.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-10 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Align `char_next` return types.
|
|
|
|
|
+
|
|
|
|
|
+ This is mostly cosmetic because FT_UInt and FT_UInt32 are likely identical.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcmap.c, src/cff/cffcmap.c, src/psaux/t1cmap.c,
|
|
|
|
|
+ src/psnames/psmodule.c, include/freetype/internal/service/svpcsmap.h,
|
|
|
|
|
+ src/pfr/pfrcmap.c, src/winfonts/winfnt.c (*_char_next): return FT_UInt.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-09 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Clean up CMAP{4,12,13} handling.
|
|
|
|
|
+
|
|
|
|
|
+ This moves the charcode overflow checks upstream and turns some
|
|
|
|
|
+ while-loops into the do-while ones to avoid the uninitialized warnings.
|
|
|
|
|
+ This should slightly reduce the number of checks and jumps.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcmap.c (tt_cmap{4,12,13}_next,
|
|
|
|
|
+ tt_cmap{4.12.13}_char_map_linear): Remove the charcode overflow check.
|
|
|
|
|
+ (tt_cmap{4,12,13}_char_map_binary): Ditto and use do-while.
|
|
|
|
|
+ (tt_cmap{12,13}_char_next): Add the overflow check.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-03 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttpost.c (load_format_25): Do not abort frame reading.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-03 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttpost.c (load_format_*): Streamline frame reading.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-02 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttpost.c: Formatting and comments.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-02 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Consolidate POST version 2.0 and 2.5 (pt 2).
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttpost.c (load_format_20, load_format_25): Update arguments
|
|
|
|
|
+ and move shared calls and checks upstream to...
|
|
|
|
|
+ (load_post_names): ... this function.
|
|
|
|
|
+ (tt_face_free_ps_names, tt_face_get_ps_name): Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-02 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Consolidate POST version 2.0 and 2.5 (pt 1).
|
|
|
|
|
+
|
|
|
|
|
+ The deprecated POST version 2.5 can be handled using the data
|
|
|
|
|
+ structures of version 2.0. The goal is to reduce the footprint.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/tttypes.h (TT_Post_Names): Absorb and...
|
|
|
|
|
+ (TT_Post_20, TT_Post_25): ... remove these structures.
|
|
|
|
|
+ src/sfnt/ttpost.c (load_post_names, tt_face_get_ps_name,
|
|
|
|
|
+ tt_face_free_ps_names, load_format_20): Updated accordingly.
|
|
|
|
|
+ (load_format_25): ditto and convert offsets to glyph indices.
|
|
|
|
|
+
|
|
|
|
|
+2023-04-01 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Miscellaneous POST clean-ups.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttpost.c (load_format_20): Decrease casts.
|
|
|
|
|
+ (load_format_25): Check the table length and impose a theoretical
|
|
|
|
|
+ glyph number limit usable with 8-bit offset. Decrease casts.
|
|
|
|
|
+ (load_post_names): Pass the mapping data length without 2 bytes.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-30 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttpost.c (load_format_20): Simplify comutations.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-29 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Streamline POST format 2.0 handing (cont'd).
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttpost.c (load_format_20): Co-allocate the string data and
|
|
|
|
|
+ their pointers, which makes it easier to handle and free them.
|
|
|
|
|
+ (tt_face_free_ps_names): Updated.
|
|
|
|
|
+ * include/freetype/internal/tttypes.h (TT_Post_20): Update type.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-20 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cff] Simplify `t2_strings` management in the old engine.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffparse.c (cff_parser_run): Allocate the charstring buffers
|
|
|
|
|
+ and the list nodes together so that they can be freed at once.
|
|
|
|
|
+ (finalize_t2_strings): Removed as no longer needed.
|
|
|
|
|
+ (cff_parser_done): Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-19 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cff] Rework the stream limit checks.
|
|
|
|
|
+
|
|
|
|
|
+ The old stream limit checks, before 6986ddac1ece, were good but
|
|
|
|
|
+ pointless for the crafted t2_strings. Checking limits there is
|
|
|
|
|
+ not necessary as they are created to hold all data. By using two
|
|
|
|
|
+ conditions, we can detect the actual crossing of the stream boundary
|
|
|
|
|
+ as appropriate for the stream pointer only. The t2_strings parsing
|
|
|
|
|
+ will not be triggering these checks.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffparse.c (cff_parser_within_limits): Removed.
|
|
|
|
|
+ (cff_parse_real, cff_parse_integer): Redesign the stream limit check.
|
|
|
|
|
+ (cff_parse_num, do fixed, cff_parse_fixed_dynamic): Update callers.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-18 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use for-loop.
|
|
|
|
|
+
|
|
|
|
|
+ Even though we never call `TT_Load_Simple_Glyph` with zero contours,
|
|
|
|
|
+ out of abundance of precaution, let's handle this case properly.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-18 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Clean up zeroing and local variables.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Avoid zeroing.
|
|
|
|
|
+ (load_truetype_glyph): Avoid zeroing and clean local variables.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-16 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftsystem.h (FT_Stream_IoFunc): Improve documentation.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1208.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-16 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftsynth.c (FT_GlyphSlot_AdjustWeight): New API.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-16 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Clean up glyph loading.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Clean space checking.
|
|
|
|
|
+ (TT_Hint_Glyph): Don't copy the outline structure.
|
|
|
|
|
+ (TT_Process_Simple_Glyph): Cosmetic update.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-15 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Clean up.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-13 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ builds/vms/apinames_vms.bash: Fix `unzip` artifact
|
|
|
|
|
+
|
|
|
|
|
+ The problem occured when unpacking a zip file created on OpenVMS on Linux.
|
|
|
|
|
+ While OpenVMS knows many different file formats, Unix only knows stream-LF
|
|
|
|
|
+ and binary. In principle `zip` on Linux should have translated the file to
|
|
|
|
|
+ stream-LF but failed to do so. That caused the file to incorrectly contain
|
|
|
|
|
+ only one line with control-characters.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-11 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Fix recent fallout in memory management.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Process_Composite_Glyph,
|
|
|
|
|
+ TT_Load_Simple_Glyph): Clean up old instructions regardless of
|
|
|
|
|
+ new ones, postpone setting `control_len` and `control_data` until...
|
|
|
|
|
+ (TT_Load_Glyph): ... the exit from this function.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-10 Jouk Jansen <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Update VMS installation support.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-10 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Hint_Glyph): Mostly cosmetic update.
|
|
|
|
|
+
|
|
|
|
|
+ The number of instructions is now taken from the executed context.
|
|
|
|
|
+ Technically, this means that `control_len` and `control_data`
|
|
|
|
|
+ values are no longer _used_ internally but only expose them.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ apinames.c: Add comment.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [gzip] File `infback.c` is not needed.
|
|
|
|
|
+
|
|
|
|
|
+ * src/gzip/infback.c: Remove.
|
|
|
|
|
+ * src/gzip/rules.mk (GZIP_DRV_SRCS): Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [apinames] Fix VMS handling of overly long function names.
|
|
|
|
|
+
|
|
|
|
|
+ Based on ideas from Jouk Jansen <[email protected]>.
|
|
|
|
|
+
|
|
|
|
|
+ * src/tools/vms_shorten_symbol.c: New file, taken from
|
|
|
|
|
+
|
|
|
|
|
+ https://sourceforge.net/p/vms-ports/vmsshortsym/ci/default/tree/vms_shorten_symbol.c
|
|
|
|
|
+
|
|
|
|
|
+ with some minor edits to allow compilation with C++ and being included in
|
|
|
|
|
+ another source code file.
|
|
|
|
|
+
|
|
|
|
|
+ * src/tools/apinames.c: Include `vms_shorten_symbol.c`.
|
|
|
|
|
+ (PROGRAM_VERSION): Set to '0.5'.
|
|
|
|
|
+ (names_dump) [OUTPUT_VMS_OPT]: Call `vms_shorten_symbol` to get unique function
|
|
|
|
|
+ identifiers not longer than 31 characters.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/tools/apinames.c (panic): Accept variable number of arguments.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-07 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix leak too.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-07 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Triage memory leak.
|
|
|
|
|
+
|
|
|
|
|
+ This leak has been introduced in the previous commit and immediately
|
|
|
|
|
+ detected:
|
|
|
|
|
+ https://chromium-review.googlesource.com/c/chromium/src/+/4313202
|
|
|
|
|
+
|
|
|
|
|
+2023-03-06 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Simplify memory management.
|
|
|
|
|
+
|
|
|
|
|
+ Instead of using `Update_Max`, switch to regular FreeType memory
|
|
|
|
|
+ allocation macros, stop pre-allocating the glyph instruction arrays.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph,
|
|
|
|
|
+ TT_Process_Composite_Glyph): Switch to regular memory allocation.
|
|
|
|
|
+ * src/truetype/ttinterp.c (Update_Max): Removed.
|
|
|
|
|
+ (TT_Load_Context): Reallocate stack and free old instructions.
|
|
|
|
|
+ (Modify_CVT_Check, Ins_WS): Switch to regular memory allocation.
|
|
|
|
|
+ * src/truetype/ttinterp.h (Update_Max): Removed.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-06 David PROVENT <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Added information about the zlib version update in the changelog
|
|
|
|
|
+
|
|
|
|
|
+2023-03-06 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Fix a couple of MSVC warnings.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftcalc.c (FT_MulAddFix): Add cast.
|
|
|
|
|
+ * src/sfnt/ttcolr.c (tt_face_get_colorline_stops, read_paint): Ditto.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-05 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * builds/windows/vc2010/freetype.vcxproj: Suppress C4267 on _WIN64.
|
|
|
|
|
+
|
|
|
|
|
+ This usually comes from `strlen` returning 64-bit `size_t`, which
|
|
|
|
|
+ we often assign to 32-bit `FT_ULong` on Windows-64 (LLP64).
|
|
|
|
|
+
|
|
|
|
|
+2023-03-05 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffparse.c (cff_parser_run): Thinko.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-05 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cff] Clean up CharString number encoding.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffparser.c (cff_parser_run): Work with signed numbers.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-05 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffparse.c (cff_parser_run): Fix variable type.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cff] Clean up memory management in the old engine.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffparse.c (finalize_t2_strings): Fix NULL-dereferencing
|
|
|
|
|
+ in the out-of-memory situation, use `FT_FREE`.
|
|
|
|
|
+ (cff_parser_run): Use FreeType memory allocation macros and avoid
|
|
|
|
|
+ uninitialized pointers.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffobjs.c (cff_size_init): Synonymous change.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfobjs.c (sfnt_load_face): Shorten de-referencing.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [pfr] Shorten de-referencing.
|
|
|
|
|
+
|
|
|
|
|
+ * src/pfr/pfrobjs.c (pfr_face_done, pfr_face_init): Use closer `memory`.
|
|
|
|
|
+ * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove `loader`.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-03 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffobjs.c (cff_size_get_globals_funcs): Shorten de-referencing.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-03 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cff,cid,type1] Shorten de-referencing.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffobjs.c (cff_clot_init): Use immediate library reference.
|
|
|
|
|
+ * src/cid/cidobjs.c (cid_slot_init): Ditto.
|
|
|
|
|
+ * src/type1/t1objs.c (T1_GlyphSlot_Init): Ditto.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-02 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * configure: Use `sed` instead of `grep`.
|
|
|
|
|
+
|
|
|
|
|
+ This is more portable and consistent with `autogen.sh`.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-02 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Avoid strtol on non-null-terminated data.
|
|
|
|
|
+
|
|
|
|
|
+ Technically, `strtol` can only be used with C strings terminated with
|
|
|
|
|
+ `\0`. CID data is not generally null-terminated and often does not
|
|
|
|
|
+ contain a `\0` if it is hex-encoded. AddressSanitizer with `ASAN_OPTIONS`
|
|
|
|
|
+ containing `strict_string_checks=1` verifies this by using an adversarial
|
|
|
|
|
+ `strtol` that always reads to the terminating `\0`.
|
|
|
|
|
+
|
|
|
|
|
+ To avoid undefined behavior from `strtol` in `cid_parser_new`, use the
|
|
|
|
|
+ parser to parse the tokens instead of attempting to parse them ad-hoc.
|
|
|
|
|
+ This will internally use `PS_Conv_Strtol` to parse the integer, which
|
|
|
|
|
+ respects the parser's limits and directly implements the PostScript
|
|
|
|
|
+ parsing rules for integers.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cid/cidparse.c (cid_parser_new): Use the parser to parse the
|
|
|
|
|
+ tokens.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes: https://bugs.chromium.org/p/chromium/issues/detail?id=1420329
|
|
|
|
|
+
|
|
|
|
|
+2023-03-02 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffload.c (cff_subfont_load): Synonymous update.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-01 ubawurinna <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/gzip/README.freetype: Update version.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-01 ubawurinna <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [gzip] Fix static linking.
|
|
|
|
|
+
|
|
|
|
|
+ Without this patch, static linking with MS Visual Studio causes linking
|
|
|
|
|
+ errors.
|
|
|
|
|
+
|
|
|
|
|
+ * src/gzip/ftgzip.c: Set `ZEXPORT` to nothing and `ZEXTERN` to static for
|
|
|
|
|
+ all compilers.
|
|
|
|
|
+
|
|
|
|
|
+2023-03-01 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/compiler-macros.h (FALL_THROUGH): Update.
|
|
|
|
|
+
|
|
|
|
|
+ This follows
|
|
|
|
|
+
|
|
|
|
|
+ https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00200.html
|
|
|
|
|
+
|
|
|
|
|
+2023-02-28 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Treat 38 as 40 without Infinality.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftdriver.h (TT_INTERPRETER_VERSION_38): Reinstate.
|
|
|
|
|
+ * src/truetype/ttdriver.c (tt_property_set): Fallback from 38 to 40.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-26 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/compiler-macros.h (FALL_THROUGH): Update.
|
|
|
|
|
+
|
|
|
|
|
+ This follows
|
|
|
|
|
+
|
|
|
|
|
+ https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00159.html
|
|
|
|
|
+
|
|
|
|
|
+2023-02-26 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/*: Replace leading underscores with trailing ones in dummy variables.
|
|
|
|
|
+
|
|
|
|
|
+ This is to avoid clang warnings.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-26 Karl Berry <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * configure: Don't hardcode `grep -E`.
|
|
|
|
|
+
|
|
|
|
|
+ TeXLive still supports Solaris 5.10, where the system's `grep` doesn't
|
|
|
|
|
+ accept the `-E` option. We thus introduce an `EGREP` variable that is set
|
|
|
|
|
+ to either `grep -E` or `-egrep`.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-26 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffload.c (cff_encoding_load): Optimize array zeroing.
|
|
|
|
|
+
|
|
|
|
|
+ This is unnecessary for predefined standard and expert encodings.
|
|
|
|
|
+ Even for custom encodings the arrays might be already zeroed when
|
|
|
|
|
+ CFF_FontRec is created but we keep it just in case.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-25 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1load.c (T1_Get_MM_Var): Optimize array zeroing.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-25 Tamir Duberstein <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftsystem.c (ft_ansi_stream_io): Avoid undefined behaviour.
|
|
|
|
|
+ Also short-circuit on `offset` to avoid checking `count` a second time when
|
|
|
|
|
+ `ft_ansi_stream_io` is used for reading.
|
|
|
|
|
+
|
|
|
|
|
+ Per ISO/IEC 9899:
|
|
|
|
|
+
|
|
|
|
|
+ If an argument to a function has an invalid value (such as a value outside
|
|
|
|
|
+ the domain of the function, or a pointer outside the address space of the
|
|
|
|
|
+ program, or a null pointer, or apointer to non-modifiable storage when the
|
|
|
|
|
+ corresponding parameter is not const-qualified) or a type (after
|
|
|
|
|
+ promotion) not expected by a function with variable number of arguments,
|
|
|
|
|
+ the behavior is undefined. If a function argument is described as being
|
|
|
|
|
+ an array, the pointer actually passed to the function shall have a value
|
|
|
|
|
+ such that all address computations and accesses to objects (that would be
|
|
|
|
|
+ valid if the pointer did point to the first element of such an array) are
|
|
|
|
|
+ in fact valid.
|
|
|
|
|
+
|
|
|
|
|
+ Per IEEE Std 1003.1:
|
|
|
|
|
+
|
|
|
|
|
+ size_t fread(void *restrict ptr, size_t size, size_t nitems,
|
|
|
|
|
+ FILE *restrict stream);
|
|
|
|
|
+
|
|
|
|
|
+ The `fread` function shall read into the array pointed to by `ptr` up to
|
|
|
|
|
+ `nitems` elements whose size is specified by `size` in bytes, from the
|
|
|
|
|
+ stream pointed to by `stream`.
|
|
|
|
|
+
|
|
|
|
|
+ Since the first argument to `fread` is described as being an array, its
|
|
|
|
|
+ behavior is undefined when that argument is a null pointer.
|
|
|
|
|
+
|
|
|
|
|
+ Per the documentation on `ft_ansi_stream_io`:
|
|
|
|
|
+
|
|
|
|
|
+ If `count' is zero (this is, the function is used for seeking), a non-zero
|
|
|
|
|
+ return value indicates an error.
|
|
|
|
|
+
|
|
|
|
|
+ Thus the intent is clear, and the call to `fread` can be skipped, avoiding
|
|
|
|
|
+ undefined behaviour.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-21 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [raster] Clean up contour indexing.
|
|
|
|
|
+
|
|
|
|
|
+ * src/raster/ftraster.c (Decompose_Curve, Convert_Glyph): Use consistent
|
|
|
|
|
+ index types (Int) and compact iterations.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-21 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [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.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-21 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftoutln.c (FT_Outline_Check): Fix C4701 warning.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-21 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sdf/ftsdf.c (get_min_distance_cubic): Fix C4701, typos.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-20 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftstroke.c (FT_Stroker_ParseOutline): Clean up contour indexing.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-20 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Clean up contour indexing.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftoutln.c (FT_Outline_Reverse, FT_Outline_EmboldenXY,
|
|
|
|
|
+ FT_Outline_Get_Orientation): Set the first and last indexes together.
|
|
|
|
|
+ (FT_Outline_Decompose): Ditto and check them more stringently.
|
|
|
|
|
+ * src/smooth/ftgrays.c (FT_Outline_Decompose)[STANDALONE_]: Ditto.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-20 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftoutln.c (FT_Outline_Check): Update error code, clean up.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-17 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Hide Infinality.
|
|
|
|
|
+
|
|
|
|
|
+ Remove Infinality as an option before its complete extraction.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftoption.h: Remove the Infinality option.
|
|
|
|
|
+ * devel/ftoption.h: Ditto.
|
|
|
|
|
+ * include/freetype/ftdriver.h (TT_INTERPRETER_VERSION_38): Is 40 now.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-17 Alex Ringlein <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftoutln.c (FT_Outline_Reverse): Anchor first contour points.
|
|
|
|
|
+
|
|
|
|
|
+ A cubic contour has to always start from an on-point. Therefore, we
|
|
|
|
|
+ should not swap the first with the last point, which might be off, and
|
|
|
|
|
+ obtain an invalid contour. This does not matter for conic contours.
|
|
|
|
|
+ If anything, it also saves one swap there. Fixes #1207.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-16 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Documentation improvement for `FT_Bitmap`.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1205.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-10 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [type1/MM] Round design coordinates.
|
|
|
|
|
+
|
|
|
|
|
+ The design coordinates for MM fonts were not rounded. For example,
|
|
|
|
|
+ `FT_Get_Var_Design_Coordinates` returned values with fractional part.
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1load.c (mm_axis_unmap): Refactor with rounding.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftmm.h (FT_Var_Axis, FT_Set_Var_Design_Coordinates,
|
|
|
|
|
+ FT_Get_Var_Design_Coordinates): Reword documentation.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-09 Jan Alexander Steffens (heftig) <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * builds/meson/parse_modules_cfg.py: Handle `gxvalid` and `otvalid`.
|
|
|
|
|
+
|
|
|
|
|
+ These need a name mapping similar to what was done for other modules,
|
|
|
|
|
+ or linking will fail.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-09 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * build/toplevel.mk (do_dist): Fix typo.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-09 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * Version 2.13 released.
|
|
|
|
|
+ ==========================
|
|
|
|
|
+
|
|
|
|
|
+ Tag sources with `VER-2-13-0'.
|
|
|
|
|
+
|
|
|
|
|
+ * docs/VERSION.TXT: Add entry for version 2.13.
|
|
|
|
|
+ * docs/CHANGES: Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * README, 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.12.1/2.13/, s/2121/2130/.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/freetype.h (FREETYPE_MINOR): Set to 13.
|
|
|
|
|
+ (FREETYPE_PATCH): Set to 0.
|
|
|
|
|
+
|
|
|
|
|
+ * builds/unix/configure.raw (version_info): Set to 25:0:19.
|
|
|
|
|
+ * CMakeLists.txt (VERSION_MINOR): Set to 13.
|
|
|
|
|
+ (VERSION_PATCH): Set to 0.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-09 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Comment on `FT_GlyphSlot_Slant'.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [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`.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Fix `FT_LOCAL` and `FT_LOCAL_DEF` tags.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Fix 'fall-through' warning messages.
|
|
|
|
|
+
|
|
|
|
|
+ Modern compilers get more insistent on that...
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/compiler-macros.h (FALL_THROUGH): Define.
|
|
|
|
|
+ * src/*: Use it instead of `/* fall through */` comments.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ 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.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ 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_`.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Fix minor clang and clang++ warnings.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-08 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype, type1] Additional variation tags.
|
|
|
|
|
+
|
|
|
|
|
+ Sync with
|
|
|
|
|
+ https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg#registered-axis-tags
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.h (TTAG_ital): New tag.
|
|
|
|
|
+ * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use it.
|
|
|
|
|
+ * src/type1/t1load.c (T1_Get_MM_Var): Handle 'slnt' and 'ital'.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-08 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftsynth.c (FT_GlyphSlot_Slant): Add vertical slant.
|
|
|
|
|
+ * include/freetype/ftsynth.h (FT_GlyphSlot_Slant): Update it.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-08 anuj <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sdf] Use 32-bit integers internally.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sdf/ftsdfcommon.h (FT_16D16, FT_26D6): Use 32-bit integers
|
|
|
|
|
+ instead of `FT_Fixed` for internal data types. `FT_Fixed` i.e.
|
|
|
|
|
+ `signed long` is 64-bit on some architectures.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ docs/CHANGES: Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Comment on optional ascender and descender.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1afm.c (T1_Read_Metrics): Reaffirm ascender and descender.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1afm.c (T1_Read_Metrics): Validate ascender and descender.
|
|
|
|
|
+
|
|
|
|
|
+ The ascender and descender are optional in the AFM specifications.
|
|
|
|
|
+ They could be omitted or even set to zero, e.g., in the current release
|
|
|
|
|
+ of URW++ base 35 fonts.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-02 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffgload.c (cff_slot_load): Avoid memory leak.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes issue #1204.
|
|
|
|
|
+
|
|
|
|
|
+2023-02-01 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_var_get_item_delta): Check `face->blend`.
|
|
|
|
|
+
|
|
|
|
|
+ Reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=55581
|
|
|
|
|
+
|
|
|
|
|
+2023-02-01 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * docs/CHANGES: Add news for 'freetype-demos'.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-30 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * subprojects/harfbuzz.wrap, subprojects/libpng.wrap: Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-28 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Minor changes.
|
|
|
|
|
+
|
|
|
|
|
+ Comment fixes, typos, removing of unnecessary parentheses.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-28 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Whitespace.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-27 Behdad Esfahbod <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [ttgxvar] Fix crash in COLRv1.
|
|
|
|
|
+
|
|
|
|
|
+ This is a stopgap until issue #1202 is properly fixed.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttxgvar.c (tt_var_get_item_delta): Check `normalizedcoords`.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-19 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ The 'COLR' v1 API will no longer be experimental in the next release.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-18 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * docs/oldlogs/ChangeLog.210: Typos.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-18 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Fix typo.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Request module 't1cid',
|
|
|
|
|
+ not 'cid'.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-18 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Return error if requested driver is not found.
|
|
|
|
|
+
|
|
|
|
|
+ In `open_face_from_buffer` it is possible that a driver is requested but
|
|
|
|
|
+ FreeType was built without the requested module. Return an error in this
|
|
|
|
|
+ case to indicate that the request could not be satisfied, rather than trying
|
|
|
|
|
+ all existing driver modules.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (open_face_from_buffer): Return `FT_Err_Missing_Module`
|
|
|
|
|
+ if a driver is specified but not found.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-18 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Avoid nullptr dereference in reading malformed 'COLR' v1 table.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=1408044.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (tt_face_load_colr): When the 'COLR' v1 table header is
|
|
|
|
|
+ too small, don't deallocate delta set index map structures.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-17 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/tools/update-copyright: Allow execution from other repositories.
|
|
|
|
|
+
|
|
|
|
|
+ We use this for `freetype-demos`.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-17 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Update all copyright notices.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-17 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/tools/no-copyright: Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-17 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] 'close' callback may not use `stream->memory`.
|
|
|
|
|
+
|
|
|
|
|
+ The documentation for `FT_StreamRec::memory` states that it 'shouldn't be
|
|
|
|
|
+ touched by stream implementations'. This is true even for internal
|
|
|
|
|
+ implementations of the 'close' callback, since it is not guaranteed that
|
|
|
|
|
+ `memory` will even be set when the 'close' callback occurs.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (new_memory_stream): stash current `memory` in
|
|
|
|
|
+ `stream->descriptor`.
|
|
|
|
|
+ (memory_stream_close): Use it.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-17 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Always close user-provided stream.
|
|
|
|
|
+
|
|
|
|
|
+ The `FT_Open_Face` documentation states
|
|
|
|
|
+
|
|
|
|
|
+ > If `FT_OPEN_STREAM` is set in `args->flags`, the stream in `args->stream`
|
|
|
|
|
+ > is automatically closed before this function returns any error (including
|
|
|
|
|
+ > `FT_Err_Invalid_Argument`).
|
|
|
|
|
+
|
|
|
|
|
+ However, if the user provides a stream in `args.stream` with
|
|
|
|
|
+ `FT_OPEN_STREAM` set and a `close` function, but then for some reason passes
|
|
|
|
|
+ NULL for `aface` and a non-negative `face_index`, the error
|
|
|
|
|
+ `Invalid_Argument` is returned but the `close` callback will not be called
|
|
|
|
|
+ on the user-provided stream. This may cause resource leaks if the caller is
|
|
|
|
|
+ depending on the `close` callback to free resources.
|
|
|
|
|
+
|
|
|
|
|
+ The difficulty is that a user may fill out a `FT_StreamRec` and pass its
|
|
|
|
|
+ address as `args.stream`, but the stream isn't really 'live' until
|
|
|
|
|
+ `FT_Stream_New` is called on it (and `memory` is set). In particular, it
|
|
|
|
|
+ cannot really be cleaned up properly in `ft_open_face_internal` until the
|
|
|
|
|
+ stream pointer has been copied into the `stream` local variable.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobj.c (ft_open_face_internal): Ensure that user-provided
|
|
|
|
|
+ `args.stream.close` is called even with early errors.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-17 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Fix leak of internal stream marked external.
|
|
|
|
|
+
|
|
|
|
|
+ `open_face_from_buffer` allocates a new `FT_Stream` to pass to
|
|
|
|
|
+ `ft_open_face_internal`. Because this is an `FT_OPEN_STREAM`,
|
|
|
|
|
+ `ft_open_face_internal` will mark this as an 'external stream', which the
|
|
|
|
|
+ caller must free. However, `open_face_from_buffer` cannot directly free it
|
|
|
|
|
+ because the stream must last as long as the face. There is currently an
|
|
|
|
|
+ attempt at this by clearing the 'external stream' bit after
|
|
|
|
|
+ `open_face_from_buffer` returns successfully. However, this is too late as
|
|
|
|
|
+ the original stream may have already been closed and the stream on the face
|
|
|
|
|
+ may not be the same stream as originally passed.
|
|
|
|
|
+
|
|
|
|
|
+ It is tempting to use `FT_OPEN_MEMORY` and let `ft_open_face_internal`
|
|
|
|
|
+ create the stream internally. However, with this method there is no means
|
|
|
|
|
+ to pass through a 'close' function to the created stream to free the
|
|
|
|
|
+ underlying data, which must be owned by the stream.
|
|
|
|
|
+
|
|
|
|
|
+ A possibility is to check on success if the stream of the face is the same
|
|
|
|
|
+ as the original stream. If it is then unset the external flag. If not,
|
|
|
|
|
+ then free the original stream. Unfortunately, while no current
|
|
|
|
|
+ implementation does so, it is possible that the face still has the original
|
|
|
|
|
+ stream somewhere other than as the `FT_FaceRec::stream`. The stream needs
|
|
|
|
|
+ to remain available for the life of the face or until it is closed,
|
|
|
|
|
+ whichever comes earlier.
|
|
|
|
|
+
|
|
|
|
|
+ The approach taken here is to let the stream own itself. When the stream is
|
|
|
|
|
+ closed it will free itself.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (memory_stream_close): Free `stream`.
|
|
|
|
|
+ (open_face_from_buffer): Simplify error handling, since
|
|
|
|
|
+ `ft_open_face_internal` always closes `args.stream` on any error.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54930
|
|
|
|
|
+
|
|
|
|
|
+2023-01-16 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ 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.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-16 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Remove temporary runtime flag for variable 'COLR' v1.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1187.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (top level, read_paint, tt_face_load_colr,
|
|
|
|
|
+ tt_face_free_colr, get_deltas_for_var_index_base,
|
|
|
|
|
+ tt_face_get_color_glyph_clipbox, tt_face_get_colorline_stops): Remove macro
|
|
|
|
|
+ definition `VARIABLE_COLRV1_ENABLED` and its usage.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttdriver.c (tt_property_set): Remove parsing of
|
|
|
|
|
+ 'TEMPORARY-enable-variable-colrv1' property name.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttobjs.h (TT_DriverRec): Remove `enable_variable_colrv1`
|
|
|
|
|
+ flag.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/autofit/ft-hb.c (_hb_ft_reference_table): Minor integration fixes.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-07 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Reset cvt and storage in context load.
|
|
|
|
|
+
|
|
|
|
|
+ Currently the cvt and storage are saved and restored in `TT_RunIns`.
|
|
|
|
|
+ However, this is too granular as the cvt and storage area should be set to
|
|
|
|
|
+ the original cvt and storage area only when setting up the hinting context.
|
|
|
|
|
+ This allows for the cvt and storage area to be modified while parsing
|
|
|
|
|
+ multiple glyphs, as is the case with composite glyphs.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttinterp.h (TT_ExecContextRec): Remove `origCvt` and
|
|
|
|
|
+ `origStorage`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttinterp.c (TT_RunIns): Don't save and restore the cvt and
|
|
|
|
|
+ storage area.
|
|
|
|
|
+ (Modify_CVT_Check, Ins_WS): Switch from "if in glyph and using original data
|
|
|
|
|
+ do copy on write" to "if in glyph and not using glyph specific data do copy
|
|
|
|
|
+ on write".
|
|
|
|
|
+
|
|
|
|
|
+2023-01-06 Matthias Clasen <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [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.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-06 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Keep variation store consistent.
|
|
|
|
|
+
|
|
|
|
|
+ `tt_var_load_item_variation_store` fills out a `GX_ItemVarStore`. While it
|
|
|
|
|
+ may return an error, the item store must be left in a consistent state so
|
|
|
|
|
+ that any use or destruction of the item store can properly use or free the
|
|
|
|
|
+ data in it. Before this change the counts from the font data were read
|
|
|
|
|
+ directly into the item store before the actual allocation of the arrays to
|
|
|
|
|
+ which they referred. There exist many opportunities between the time the
|
|
|
|
|
+ counts are read and the arrays are allocated to return early due to invalid
|
|
|
|
|
+ data. When this happened the item store claimed to have entires it actually
|
|
|
|
|
+ did not, leading to crashes later when it was used.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54449
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Read the counts
|
|
|
|
|
+ into local variables and store them in the item store only after the related
|
|
|
|
|
+ arrays are actually created on the item store.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-05 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Report used stream's external status.
|
|
|
|
|
+
|
|
|
|
|
+ In `open_face` the initial stream is set on the face, along with the
|
|
|
|
|
+ information about if FreeType is the owner of the stream object itself. The
|
|
|
|
|
+ loaders may in the course of their work replace this stream with a new
|
|
|
|
|
+ stream (as is the case for 'woff' and 'woff2'), which may have a different
|
|
|
|
|
+ ownership than the initial stream object (likely the original stream object
|
|
|
|
|
+ is owned by the user and is external, while the new stream object is created
|
|
|
|
|
+ internally to FreeType and is internal). When the stream is replaced, the
|
|
|
|
|
+ face's flags are updated with the new ownership status.
|
|
|
|
|
+
|
|
|
|
|
+ However, `open_face` cannot itself free this stream as its caller
|
|
|
|
|
+ `ft_open_face_internal` is responsible for this. In addition, in the case
|
|
|
|
|
+ of an error `open_face` cannot return an actual face with the new stream and
|
|
|
|
|
+ its ownership status to the caller. As a result, it must pass this
|
|
|
|
|
+ information back to the caller as a sort of "failed face" so that the caller
|
|
|
|
|
+ can clean up.
|
|
|
|
|
+
|
|
|
|
|
+ `open_face` was already passing back the new stream but was not passing back
|
|
|
|
|
+ the stream ownership information. As a result the stream may not have been
|
|
|
|
|
+ free'd when needed.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54700
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (open_face): Pass back the ownership information as
|
|
|
|
|
+ well.
|
|
|
|
|
+ (ft_open_face_internal): Updated.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-05 Noah Cabral <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ fix spelling err in LICENSE.txt
|
|
|
|
|
+
|
|
|
|
|
+2023-01-05 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Fix color stop bounds check calculation at table end.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes https://bugs.chromium.org/p/skia/issues/detail?id=14021
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (VAR_IDX_BASE_SIZE): New macro.
|
|
|
|
|
+ (tt_face_get_colorline_stops): Fix off-by-one bounds check calculation, take
|
|
|
|
|
+ `VarColorStop` into account, and hopefully make it easier to read.
|
|
|
|
|
+
|
|
|
|
|
+2023-01-05 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (FT_Request_Metrics): Avoid division by zero.
|
|
|
|
|
+
|
|
|
|
|
+ The division-by-zero might happen in broken fonts (see #1194).
|
|
|
|
|
+ Instead of returning a huge number from FT_DivFix and failing
|
|
|
|
|
+ to scale later, we now bail immediately.
|
|
|
|
|
+
|
|
|
|
|
+2022-12-20 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [psaux] Delay the upem validity assertion.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1194.
|
|
|
|
|
+
|
|
|
|
|
+ * src/psaux/psft.c (cf2_getUnitsPerEm): Remove the upem assert.
|
|
|
|
|
+ (cf2_checkTransform): Assert the upem validity after checking the scale.
|
|
|
|
|
+
|
|
|
|
|
+2022-12-14 David Vanderson <[email protected]>
|
|
|
|
|
+ Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [gzip] Make static compilation not leak global symbols.
|
|
|
|
|
+
|
|
|
|
|
+ * src/gzip/ftgzip.c (HAVE_HIDDEN): Do not define; it is no longer needed
|
|
|
|
|
+ because everything is static.
|
|
|
|
|
+ (HAVE_MEMCPY): Define.
|
|
|
|
|
+ (zcalloc, zcfree): Remove no longer needed definitions (because `Z_SOLO` is
|
|
|
|
|
+ active).
|
|
|
|
|
+
|
|
|
|
|
+ * src/gzip/patches/freetype-zlib.diff: Regenerated.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1146.
|
|
|
|
|
+
|
|
|
|
|
+2022-12-14 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/gzip/ftzconf.h: Updated to zlib 1.2.13.
|
|
|
|
|
+
|
|
|
|
|
+ I forgot to copy that file.
|
|
|
|
|
+
|
|
|
|
|
+2022-12-14 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * builds/unix/configure.raw: Don't check for `memcpy` and `memmove`.
|
|
|
|
|
+
|
|
|
|
|
+ We expect a C99 compiler, and both functions are part of this standard.
|
|
|
|
|
+
|
|
|
|
|
+2022-12-13 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sdf, sfnt] Handle minor compiler warnings.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sdf/ftsdf.c (get_min_distance_conic): Initialize `nearest_point`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttsvg.c (find_doc): Initialize `mid_doc`.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1195.
|
|
|
|
|
+
|
|
|
|
|
+2022-12-07 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * subprojects/zlib.wrap: Micro-update from upstream.
|
|
|
|
|
+
|
|
|
|
|
+2022-12-06 Jiří Malák <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/ftcalc.h (FT_MSB): Support Open Watcom 2.0.
|
|
|
|
|
+
|
|
|
|
|
+ Closes !232.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-23 Luca Bacci <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftdbgmem.c (ft_mem_source_compare): Add FT_COMPARE_DEF.
|
|
|
|
|
+
|
|
|
|
|
+ Closes !230.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-21 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/autofit/afloader.c (af_loader_load_glyph): Remove `size` check.
|
|
|
|
|
+
|
|
|
|
|
+ This is done by `FT_Load_Glyph`.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-18 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Comments added.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-16 Johan Matsson <mjunix@ at github>
|
|
|
|
|
+
|
|
|
|
|
+ * 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
|
|
|
|
|
+
|
|
|
|
|
+2022-11-15 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/pcf/pcfutil.c ({Two,Four}ByteSwap): Use builtins or shifts.
|
|
|
|
|
+
|
|
|
|
|
+ We trust glibc which uses shifts or builtins to swap bytes. This
|
|
|
|
|
+ must be more efficient.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-14 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_hvadvance_adjust): Integer overflow.
|
|
|
|
|
+
|
|
|
|
|
+ Reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50462
|
|
|
|
|
+
|
|
|
|
|
+2022-11-14 Loïc Yhuel <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [meson] Use generated ftmodule.h
|
|
|
|
|
+
|
|
|
|
|
+ ftmodule.h is generated at the root of the build directory, but FT_CONFIG_MODULES_H
|
|
|
|
|
+ (freetype/config/ftmodule.h) is used instead.
|
|
|
|
|
+ This makes the build fail when disabling modules in modules.cfg.
|
|
|
|
|
+
|
|
|
|
|
+ * meson.build (harfbuzz_dep): Add '-DFT_CONFIG_MODULES_H=<ftmodule.h>'.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-14 Loïc Yhuel <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [meson] Fix generated ftmodule.h
|
|
|
|
|
+
|
|
|
|
|
+ The sdf module wasn't recognized, so the generated ftmodule.h had "None_renderer_class".
|
|
|
|
|
+
|
|
|
|
|
+ * builds/meson/parse_modules_cfg.py: Handle sdf in RASTER_MODULES.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-12 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Add `TT_CONFIG_OPTION_NO_BORING_EXPANSION` configuration macro.
|
|
|
|
|
+
|
|
|
|
|
+ This gives users a possibility to deactivate new features not (yet) in the
|
|
|
|
|
+ OpenType standard.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/config/ftoption.h, devel/ftoption.h
|
|
|
|
|
+ (TT_CONFIG_OPTION_NO_BORING_EXPANSION): New macro.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (ft_var_load_avar): Use it to disable 'avar'
|
|
|
|
|
+ version 2.0 support.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-12 Behdad Esfahbod <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Improve bounds checks for `ItemVariationStore`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_hvadvance_adjust): Move bounds check ...
|
|
|
|
|
+ (tt_var_get_item_delta): ... to this function, because it is safer. For
|
|
|
|
|
+ example, the 'avar' table 2.0 codepath was not performing a bounds check at
|
|
|
|
|
+ all.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-12 Behdad Esfahbod <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] In `ItemVariationStore`, value 0xFFFF for `dataCount` is valid.
|
|
|
|
|
+
|
|
|
|
|
+ It corresponds to outer indices of 0 to 0xFFFE.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Remove invalid
|
|
|
|
|
+ code.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-11 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [pcf] Improve CMap efficiency and readability.
|
|
|
|
|
+
|
|
|
|
|
+ * src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Check and walk
|
|
|
|
|
+ the encoding array indexes.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-10 Sam James <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Fix `-Wstrict-prototypes`.
|
|
|
|
|
+
|
|
|
|
|
+ * builds/unix/configure.raw: Fix `-Wstrict-prototypes`.
|
|
|
|
|
+ Clang 16 warns on these and they will be dropped in C23.
|
|
|
|
|
+
|
|
|
|
|
+ * builds/unix/freetype2.m4: Ditto.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-09 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Check avar_segment before access
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_done_blend): check `avar_segment` before
|
|
|
|
|
+ accessing to free its `correspondence`.
|
|
|
|
|
+
|
|
|
|
|
+ Reported as:
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53062
|
|
|
|
|
+
|
|
|
|
|
+2022-11-09 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Restore behavior of ft_var_load_hvvar
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgcvar.c (ft_var_load_hvvar): restore previous behavior
|
|
|
|
|
+
|
|
|
|
|
+ In a previous change [0] the behavior of `ft_var_load_hvvar` was changed
|
|
|
|
|
+ to not load the item variation store if it was at offset 0, but not
|
|
|
|
|
+ return an error when this happened. This broke any users, like
|
|
|
|
|
+ `tt_hvadvance_adjust`, that rely on successful completion of
|
|
|
|
|
+ `ft_var_load_hvvar` to imply that returned table's `itemStore` had been
|
|
|
|
|
+ initialized. This lead such users to dereference NULL.
|
|
|
|
|
+
|
|
|
|
|
+ This change appears to have been unintentional and unrelated to the
|
|
|
|
|
+ actual avar2 changes. As a result, fix these NULL dereferences by
|
|
|
|
|
+ restoring the code to always attempt to initialize the `itemStore`.
|
|
|
|
|
+
|
|
|
|
|
+ [0] ae4eb996 "[truetype] Add support for `avar` table 2.0 format."
|
|
|
|
|
+
|
|
|
|
|
+ Reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53061
|
|
|
|
|
+
|
|
|
|
|
+2022-11-08 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ docs/CHANGES: Updated.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-08 suzuki toshiya <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [build] use AC_CHECK_PROG() macro for libpng-config detection
|
|
|
|
|
+
|
|
|
|
|
+ * builds/unix/configure.raw: use AC_CHECK_PROG() instead of `which` to find `libpng-config`.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-08 suzuki toshiya <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [build] fix for make multi
|
|
|
|
|
+
|
|
|
|
|
+ Fix "make multi" by MR !223
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/services/svmm.h: include ftmm.h to define FT_Get_MM_Func.
|
|
|
|
|
+ * src/truetype/ttgxvar.h: include ftmmtypes.h to use GX_AVarTable properly.
|
|
|
|
|
+ * src/base/ftmac.c: include ftdebug.h to use FT_THROW() properly.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-08 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Accelerate the search.
|
|
|
|
|
+
|
|
|
|
|
+ This is mostly for consistency because PFR fonts with bitmap strikes
|
|
|
|
|
+ do not seem to exist.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-06 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [bdf, pfr, psnames] Accelarate charmap searches.
|
|
|
|
|
+
|
|
|
|
|
+ The binary searches within charmaps can be accelerated because they
|
|
|
|
|
+ often contain dense continuous blocks of character codes. Within such
|
|
|
|
|
+ blocks, you can predict matches based on misses. This method has been
|
|
|
|
|
+ deployed in `bdf` since 0f122fef34; we only refactor it there. We now
|
|
|
|
|
+ use it in `pfr` and `psnames`, which speeds up the unicode charmap
|
|
|
|
|
+ access by about 50% in PFR and Type 1 fonts.
|
|
|
|
|
+
|
|
|
|
|
+ * src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Refactor.
|
|
|
|
|
+ * src/pfr/pfrcmap.c (pfr_cmap_char_{index,next}): Predict `mid` based
|
|
|
|
|
+ on the mismatch distance.
|
|
|
|
|
+ * src/psnames/psmodule.c (ps_unicodes_char_{index,next}): Ditto.
|
|
|
|
|
+
|
|
|
|
|
+2022-11-04 Behdad Esfahbod <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Add support for `avar` table 2.0 format.
|
|
|
|
|
+
|
|
|
|
|
+ See
|
|
|
|
|
+
|
|
|
|
|
+ https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md
|
|
|
|
|
+
|
|
|
|
|
+ for the specification.
|
|
|
|
|
+
|
|
|
|
|
+ Currently, this is implemented only in most recent OS versions on Apple
|
|
|
|
|
+ platforms and in the HarfBuzz library, but it is expected to be added to the
|
|
|
|
|
+ OpenType standard soon.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.h (GX_AVarTableRec): New structure.
|
|
|
|
|
+ (GX_BlendRec): Use it to replace `avar_segment` with `avar_table`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (ft_var_load_avar): Load new table version.
|
|
|
|
|
+ (ft_var_to_normalized, tt_done_blend): Extend for new format.
|
|
|
|
|
+ (ft_var_load_hvvar, ft_var_to_design): Updated.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-24 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Replace '1/64th' (and similar entries) with '1/64' in docs and comments.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-24 Ivan Panchenko <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/*: Fix documentation typos.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-21 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c: Cosmetic changes.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-21 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cff, truetype] Simplify SVG metrics scaling.
|
|
|
|
|
+
|
|
|
|
|
+ Use pre-calculated scaling factors. Also, the advance widths used
|
|
|
|
|
+ to be rounded, which was incorrect.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffgload.c (cff_slot_load): Use `x_scale` and `y_scale`.
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-20 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * subprojects/zlib.wrap: Update to zlib version 1.2.13.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-18 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Additional bounds checks for `COLR` v1 table handling.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (read_paint): Add `colr` argument, necessary for...
|
|
|
|
|
+ ... another use of `ENSURE_READ_BYTES`.
|
|
|
|
|
+ Update callers.
|
|
|
|
|
+ (tt_face_get_paint_layers): Ensure that the 4-byte paint table
|
|
|
|
|
+ offset can be read.
|
|
|
|
|
+
|
|
|
|
|
+ This is a follow-up to !124 and issue
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52404
|
|
|
|
|
+
|
|
|
|
|
+2022-10-18 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [gzip] Update sources to zlib 1.2.13.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-18 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Simplify calculations.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-18 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Minor formatting.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-18 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Guard individual `COLR` v1 paint field reads.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (ENSURE_READ_BYTES): New macro.
|
|
|
|
|
+ (read_paint): Use it – after the start pointer `p` has been checked for
|
|
|
|
|
+ whether it allows reading the format byte, each successive paint table field
|
|
|
|
|
+ read need to be bounds-checked before reading further values.
|
|
|
|
|
+
|
|
|
|
|
+ Reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52404
|
|
|
|
|
+
|
|
|
|
|
+2022-10-17 Xiang Xiao <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * builds/toplevel.mk: Prefix all paths with `$(TOP_DIR)/`.
|
|
|
|
|
+
|
|
|
|
|
+ This is useful for builds that are not started from the root directory.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-17 Liu Kunpeng(柳鲲鹏) <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftsynth.c (FT_GlyphSlot_Slant): New API with custom slant.
|
|
|
|
|
+ * include/freetype/ftsynth.h (FT_GlyphSlot_Slant): Declare it.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-15 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Note the lack of floating-point data types.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-10 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cff] Remove `FT_CONFIG_OPTION_NO_GLYPH_NAMES`.
|
|
|
|
|
+
|
|
|
|
|
+ This ancient option stayed completely undocumented. Given that the 'cff'
|
|
|
|
|
+ driver requires the 'psnames' module, it makes no sense today to have this
|
|
|
|
|
+ macro.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffdrivr.c (cff_services), src/cff/cffobjs.c (cff_face_init):
|
|
|
|
|
+ Remove corresponding conditional code.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-10 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Synchronize `ftoption.h` flavours.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-10 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Minor comment changes.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-05 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Improve FT_Get_Name_Index docs and place it next to FT_Get_Glyph_Name.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [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.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-04 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1afm.c (T1_Read_PFM): Set charmaps directly.
|
|
|
|
|
+
|
|
|
|
|
+ As with the previous commit, we can avoid the validation checks
|
|
|
|
|
+ of `FT_Set_Charmap` and set it directly when choosing from the
|
|
|
|
|
+ available list.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-03 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Avoid `FT_Set_Charmap`.
|
|
|
|
|
+
|
|
|
|
|
+ Set charmap aggressively without all validations of `FT_Set_Charmap`
|
|
|
|
|
+ because we take it from the available array and only temporarily.
|
|
|
|
|
+ Even CMap Format 14 will gracefully return 0.
|
|
|
|
|
+
|
|
|
|
|
+2022-10-03 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftcbasic.c (ftc_basic_family_get_count): Remove redundancy.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-30 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/psaux/pshints.c (cf2_hintmap_insertHint): Fix midpoint computation.
|
|
|
|
|
+
|
|
|
|
|
+ Replace '(start + end) / 2' with 'start + (end - start) / 2' to avoid
|
|
|
|
|
+ overflow.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1180.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-30 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/psaux/pshints.c (cf2_hintmap_build): Improve debugging output.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-29 mlugg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Fix undefined pointer arithmetic.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_var_get_item_delta, ft_var_load_mvar): Use
|
|
|
|
|
+ `FT_OFFSET`.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-29 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Use lighter FT_DivFix.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-29 Ali Chraghi <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] FT_Attach_Stream: Make `parameters` argument constant.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-29 Azamat Hackimov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/tools/*.py: Migrate to Python 3.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1185, closes !205. Formatting changes according to PEP8.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-27 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Guard access in 'COLR' table when requesting child table pointer.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (tt_face_get_colorline_stops, read_paint): Tighten
|
|
|
|
|
+ pointer bounds checks.
|
|
|
|
|
+ (get_child_table_pointer): Check whether incoming pointer `p` lies within
|
|
|
|
|
+ the 'COLR' table.
|
|
|
|
|
+
|
|
|
|
|
+ Reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=51816
|
|
|
|
|
+
|
|
|
|
|
+2022-09-27 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Add SVG document bounds checking.
|
|
|
|
|
+
|
|
|
|
|
+ Add a check that the document content is actually contained within the
|
|
|
|
|
+ `SVG ` table. Without this check a malformed font may claim arbitrary
|
|
|
|
|
+ memory as its document content.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttsvg.c (tt_face_load_svg): Take `numEntries` into account when
|
|
|
|
|
+ testing 'documentRecord' extents.
|
|
|
|
|
+ (find_doc): Rename `stream` to `document_records` for clarity.
|
|
|
|
|
+ (tt_face_load_svg_doc): Split `doc` from `doc_list` pointer for clarity.
|
|
|
|
|
+ Test that the document content is contained within the table.
|
|
|
|
|
+ Ensure minimum length of document before testing for gzip format.
|
|
|
|
|
+
|
|
|
|
|
+ Reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=51812
|
|
|
|
|
+
|
|
|
|
|
+2022-09-23 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Clean up the bitmap flow control.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftbitmap.c (FT_Bitmap_Copy): Flip the copy if its pitch
|
|
|
|
|
+ is trully opposite, zero is not a positive value.
|
|
|
|
|
+ (FT_Bitmap_Convert): Set negative pitch as needed, accept negative
|
|
|
|
|
+ alignment values.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-22 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Discard and recreate bitmaps for copying and converting.
|
|
|
|
|
+
|
|
|
|
|
+ Reusing target bitmaps for copying and converting is permitted. It is,
|
|
|
|
|
+ however, pointless to preserve their content before overwriting. Free-
|
|
|
|
|
+ malloc might be faster than realloc.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftbitmap.c (FT_Bitmap_Copy, FT_Bitmap_Convert): Free
|
|
|
|
|
+ an old buffer and create a new one.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-16 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Reject 'COLR' table if version is 1 but header too small.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (tt_face_load_colr): If the version is determined to
|
|
|
|
|
+ be 1, then the table size has to be at least the size of the v1 header.
|
|
|
|
|
+ Also, for peeking the number of base glyphs and entries in the layer list,
|
|
|
|
|
+ ensure that the table is sufficiently long.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1179. Original patch by Sergey Temnikov.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-15 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix format 1 handling.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1181.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-06 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Reject 'fvar' loading when `num_instances` is too small.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (TT_Get_MM_Var): Reject retrieving master when
|
|
|
|
|
+ 'fvar' values locally do not match with sanitized values from initialization
|
|
|
|
|
+ at `sfnt_init_face` time.
|
|
|
|
|
+
|
|
|
|
|
+ Reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/chromium/issues/detail?id=1360295
|
|
|
|
|
+
|
|
|
|
|
+2022-09-05 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Handle variable `COLR` v1 fonts without delta set index map
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1178.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (get_deltas_for_var_index_base): Set outer index to
|
|
|
|
|
+ 0 and inner index to the delta index when retrieving deltas if the
|
|
|
|
|
+ `COLR` table has no delta set index map.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-05 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Pointer sanity checks before reading layer info in 'COLR' v0
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (tt_face_get_colr_layer): Check that the pointer to
|
|
|
|
|
+ read from is within the 'COLR' table.
|
|
|
|
|
+
|
|
|
|
|
+ Reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50633
|
|
|
|
|
+
|
|
|
|
|
+2022-09-05 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [autofit] Minor fix.
|
|
|
|
|
+
|
|
|
|
|
+ * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Avoid
|
|
|
|
|
+ compiler warning.
|
|
|
|
|
+
|
|
|
|
|
+2022-09-05 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Don't require 'gvar' table to support variation fonts.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1172.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfobjs.c (sfnt_load_face): Tag font as Multiple Masters font if
|
|
|
|
|
+ `fvar` is present; do not require other tables to be present.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (tt_set_mm_blend): Allow for a missing 'gvar' table
|
|
|
|
|
+ when setting variation coordinates. However, if a 'gvar' table is actually
|
|
|
|
|
+ present, do perform a sanity check and fail on malformedness.
|
|
|
|
|
+ (TT_Get_MM_Var): Don't assume 'fvar' needs 'gvar' or 'CFF2 tables in all
|
|
|
|
|
+ cases, which is an overly tight check.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-27 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftver.rc: Explicitly use UTF-16.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1177 to avoid mistranslation and other problems.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-26 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Avoid undefined shifts in `COLR` v1 color line retrieval
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (tt_face_get_colorline_stops): Disambiguate shift
|
|
|
|
|
+ behavior by using multiplication using macros from ftcalc.h.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50573
|
|
|
|
|
+
|
|
|
|
|
+2022-08-21 Sean Farrell <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ CMakeLists.txt (FT_ENABLE_ERROR_STRINGS): New configuration option.
|
|
|
|
|
+
|
|
|
|
|
+ This option uncomments FreeType configuration macro
|
|
|
|
|
+ `FT_CONFIG_OPTION_ERROR_STRINGS` to make function `FT_Error_String` return
|
|
|
|
|
+ meaningful error strings.
|
|
|
|
|
+
|
|
|
|
|
+ This option is off by default.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-21 Chris Liddell <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base, type1] Better handling of out-of-memory situations.
|
|
|
|
|
+
|
|
|
|
|
+ This follows similar code in `cff_slot_done`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (ft_glyphslot_done), src/type1/t1objs.c
|
|
|
|
|
+ (T1_GlyphSlot_Done): Check `internal` pointer.
|
|
|
|
|
+
|
|
|
|
|
+ The Type1 problems was reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50057.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-06 Tim-Philipp Müller <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ ci: bump windows image and use newer runner and vs2019
|
|
|
|
|
+
|
|
|
|
|
+ The old 1809 runner will be decommissioned at some point.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-04 @udoudou <>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftcmanag.c (FTC_Manager_New): Initialize `cur_weight`.
|
|
|
|
|
+
|
|
|
|
|
+ See !192.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-02 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttload.c: Trace formatting updates.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-02 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/psaux/psobjs.c (ps_table_release): Remove redundant casting.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-02 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Reduce casting.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-02 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [cache] Remove some casts, clean up tracing.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cache/ftcbasic.c (FTC_ImageCache_Lookup, FTC_SBitCache_Lookup):
|
|
|
|
|
+ Clean up tracing types.
|
|
|
|
|
+ * src/cache/ftccache.c (ftc_node_destroy): Ditto.
|
|
|
|
|
+ * src/cache/ftcmanag.c (FTC_Manager_Check): Ditto.
|
|
|
|
|
+ (FTC_Manager_Check, FTC_Node_Unref): Remove a cast.
|
|
|
|
|
+ * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Ditto.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-01 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [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.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-01 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [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.
|
|
|
|
|
+
|
|
|
|
|
+2022-08-01 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [psaux] Remove unused structure field.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/psaux.h (PS_TableRec): Remove `num_elems`.
|
|
|
|
|
+ * src/psaux/psobjs.c (ps_table_new): Remoove its initialization.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-30 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Implement VarClipBox.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Depending on the
|
|
|
|
|
+ format, read `var_index_base`, then retrieve and apply scaled deltas.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-30 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Fix typo in clip box computation.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Use appropriate
|
|
|
|
|
+ scale factor for `yMin` and `yMax`.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-30 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [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.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-30 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/autofit/afhints.h: Remove dead code.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-29 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftglyph.c (FT_Get_Glyph): Set `*aglyph` to NULL in case of error.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-29 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Fix compilation if `TT_CONFIG_OPTION_GX_VAR_SUPPORT` is not set.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c: Protect relevant code with
|
|
|
|
|
+ `TT_CONFIG_OPTION_GX_VAR_SUPPORT`.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-29 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Fix clang14 compiler warnings.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/ftstream.h (FT_GET_SHORT_LE, FT_GET_USHORT_LE):
|
|
|
|
|
+ Fix type.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (get_deltas_for_var_index_base): Always return boolean
|
|
|
|
|
+ value.
|
|
|
|
|
+ (tt_face_get_colorline_stops): Fix type of `var_index_base`.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-26 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [pfr] Fortify the kerning code.
|
|
|
|
|
+
|
|
|
|
|
+ Any array index must be strictly less then the array size. Therefore,
|
|
|
|
|
+ we must reject indexes that are equal to the array size. Alternatively,
|
|
|
|
|
+ we should move the bounds check before the index decrement but that
|
|
|
|
|
+ would be confusing.
|
|
|
|
|
+
|
|
|
|
|
+ In addition, it is ok to decrement zero (.notdef) and get UINT_MAX,
|
|
|
|
|
+ which is then automatically rejected in the bounds check.
|
|
|
|
|
+
|
|
|
|
|
+ * src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix the bounds checking.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-26 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [pfr] Add some safety guards.
|
|
|
|
|
+
|
|
|
|
|
+ * src/pfr/pfrload.c (pfr_phy_font_load): Check resolutions and number of
|
|
|
|
|
+ characters.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1174.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-26 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/pfr/*.c: Trivial improvements and formatting.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-24 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * configure: s/egrep/grep -E/
|
|
|
|
|
+
|
|
|
|
|
+ `egrep` is deprecated.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-23 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Build outlines in amortized constant time.
|
|
|
|
|
+
|
|
|
|
|
+ When resizing the loader's points and contours, resize them to at least 1.5
|
|
|
|
|
+ times their current size. The code currently only reserves as much space as
|
|
|
|
|
+ is currently required, leading to O(n^2) runtime when adding points one at a
|
|
|
|
|
+ time.
|
|
|
|
|
+
|
|
|
|
|
+ This change does not attempt to ever shrink the loader's point and contour
|
|
|
|
|
+ storage since this was not attempted previously either. The 1.5 multiple
|
|
|
|
|
+ was chosen as a trade-off between potentially unused space and the runtime.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftgloader.c (FT_GlyphLoader_CheckPoints): Implement it.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1173.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-09 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Support variable 'COLR' v1 `PaintVarSkew*`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration values
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_SKEW`,
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_SKEW_CENTER`, and
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_SKEW_CENTER`.
|
|
|
|
|
+ (read_paint): Handle new enumeration values.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-09 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Support variable 'COLR' v1 `PaintVarRotate*`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration values
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_ROTATE` and
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_ROTATE_CENTER`.
|
|
|
|
|
+ (read_paint): Handle new enumeration values.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-09 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Support 'COLR' v1 variable `PaintVarScale*`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c: (FT_PaintFormatInternal): New enumeration values
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_SCALE`,
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_SCALE_CENTER`,
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_SCALE_UNIFORM`, and
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_SCALE_UNIFORM_CENTER`.
|
|
|
|
|
+ (read_paint): Handle new enumeration values.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-09 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Support for 'COLR' v1 variable translate.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration value
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_TRANSLATE`.
|
|
|
|
|
+ (read_paint): Handle new enumeration value.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-09 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Support for 'COLR' v1 variable transforms.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration value
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_TRANSFORM`.
|
|
|
|
|
+ (read_paint): Handle new enumeration value.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-09 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Deltas for 'COLR' v1 gradient coordinates.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (read_paint) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Read and
|
|
|
|
|
+ apply deltas to radial, linear, and sweep gradient coordinates such as 'p0',
|
|
|
|
|
+ 'p1', 'p2', 'center', 'radii', and 'angles'.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-08 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Support variable 'COLR' v1 color lines.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftcolor.h (FT_ColorStopIterator): Add field
|
|
|
|
|
+ `read_variable` to indicate whether a variation index base should be read.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c: (FT_PaintFormat_Internal): New enumerations
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_LINEAR_GRADIENT`
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_RADIAL_GRADIENT`, and
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_SWEEP_GRADIENT`.
|
|
|
|
|
+ (read_color_line): New parameter `read_variable`; update callers.
|
|
|
|
|
+ (read_paint): Handle new enumerations.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-07 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Apply variation deltas to `PaintVarSolid`.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (FT_PaintFormat_Internal_): New enumeration
|
|
|
|
|
+ `FT_COLR_PAINTFORMAT_INTERNAL_VAR_SOLID`.
|
|
|
|
|
+
|
|
|
|
|
+ (get_deltas_for_var_index_base) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New
|
|
|
|
|
+ function to retrieve an array of delta values, which will be used for most
|
|
|
|
|
+ of 'COLR' v1 variation formats (in follow-up commits).
|
|
|
|
|
+
|
|
|
|
|
+ (read_paint): Add `face` parameter; update caller.
|
|
|
|
|
+ Handle `FT_COLR_PAINTFORMAT_INTERNAL_VAR_SOLID`.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-07 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Check safety of cast to `TT_Driver` before accessing member.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c (VARIABLE_COLRV1_ENABLED): Access
|
|
|
|
|
+ `enable_variable_colrv1` only if driver class matches.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-06 Stephen Holdaway <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ doc: Clarify description of `FT_Stream_IoFunc`.
|
|
|
|
|
+
|
|
|
|
|
+ The existing documentation comments on `FT_Stream_IoFunc` hinted at the dual
|
|
|
|
|
+ seek/read behavior required for custom stream implementations to work, but
|
|
|
|
|
+ it didn't explicitly explain it. Without looking at the internals of
|
|
|
|
|
+ FreeType, it was easy for someone to assume their implementation should
|
|
|
|
|
+ handle both seek and read operations all the time. If this is done, you get
|
|
|
|
|
+ a variety of errors, but mostly just `Unknown_File_Format` (error code
|
|
|
|
|
+ 0x02).
|
|
|
|
|
+
|
|
|
|
|
+2022-07-04 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Load variation store for 'COLR' v1.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttcolr.c: Include `ttobjs.h` temporarily.
|
|
|
|
|
+ (VARIABLE_COLRV1_ENABLED): New temporary macro to detect whether variable
|
|
|
|
|
+ COLRv1 is enabled.
|
|
|
|
|
+ (Colr): New fields `var_store` and `delta_set_idx_map`.
|
|
|
|
|
+ (tt_face_load_colr, tt_face_free_colr) [VARIABLE_COLRV1_ENABLED]: Load and
|
|
|
|
|
+ free variation store data using the functions from the Multiple Masters
|
|
|
|
|
+ service.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-03 Chris Liddell <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Improve error handling in `FT_GlyphLoader_CheckPoints`.
|
|
|
|
|
+
|
|
|
|
|
+ If `FT_GlyphLoader_CreateExtra` returns an error (and a couple of other
|
|
|
|
|
+ places), `FT_GlyphLoader_CheckPoints` would propagate the error immediately,
|
|
|
|
|
+ rather than cleaning up the partially set up `FT_GlyphLoader`. As a
|
|
|
|
|
+ consequence, a subsequent attempt to create a glyph could result in a crash.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Ensure all the error
|
|
|
|
|
+ conditions exits are consistent, eventually calling `FT_GlyphLoader_Reset`.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-03 Thomas Sondergaard <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ CMakeLists.txt: Provide both 'freetype' and 'Freetype::Freetype' targets.
|
|
|
|
|
+
|
|
|
|
|
+ FreeType can be located by consuming projects that use
|
|
|
|
|
+ `find_package(Freetype)` either via the old `MODULE` path (which uses
|
|
|
|
|
+ `FindFreetype.cmake` supplied by CMake), or via the new `CONFIG` path (which
|
|
|
|
|
+ uses `freetype-config.cmake` as supplied by this project). Up to this point
|
|
|
|
|
+ the CMake module has supplied the target `Freetype::Freetype` and the config
|
|
|
|
|
+ file provided by this project the target `freetype`. Now we supply both
|
|
|
|
|
+ `freetype` and `Freetype::Freetype` so that consuming projects can always
|
|
|
|
|
+ use the target `Freetype::Freetype` regardless of what path was taken by
|
|
|
|
|
+ `find_package(Freetype)`.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1165.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-02 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ include/freetype/ftmm.h: Improve documentation.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-01 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [base] Round values in `FT_MulAdd_Fix`.
|
|
|
|
|
+
|
|
|
|
|
+ This avoids regressing Blink layout tests and makes `FT_MulAdd_Fix` delta
|
|
|
|
|
+ retrieval implementation consistent with the previous implementation, which
|
|
|
|
|
+ used `FT_fixedToInt` and included rounding.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftcalc.c (FT_MulAdd_Fix): Implement it.
|
|
|
|
|
+ Also fix remaining `temp` initialization compilation issue.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1169.
|
|
|
|
|
+
|
|
|
|
|
+2022-07-01 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Minor formatting.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-30 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Fix initialisation of temp variable in new FT_MulAddFix
|
|
|
|
|
+
|
|
|
|
|
+ src/truetype/ttgxvar.c (FT_MulAddFix): Initialise `temp`.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-29 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Perform variation store delta computation with 64-bit precision.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/ftmmtypes.h (FT_ItemVarDelta): Make type
|
|
|
|
|
+ explicitly 32-bit.
|
|
|
|
|
+ * include/freetype/internal/services/svmm.h
|
|
|
|
|
+ (FT_Var_Get_Item_Delta_Func): Change return type to `FT_ItemVarDelta`
|
|
|
|
|
+ * truetype/ttgxvar.h (tt_var_get_item_delta): Change return type to
|
|
|
|
|
+ `FT_ItemVarDelta`.
|
|
|
|
|
+ * truetype/ttgxvar.c (tt_var_get_item_delta): Store scalars and deltas
|
|
|
|
|
+ to intermediate array, perform computation using new method
|
|
|
|
|
+ `FT_MulAddFix`.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-29 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ New function `FT_MulAddFix` to compute the sum of fixed-point products.
|
|
|
|
|
+
|
|
|
|
|
+ This function, based on the code of `FT_MulFix`, uses 64-bit precision
|
|
|
|
|
+ internally for intermediate computations.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/ftcalc.h, base/ftcalc.c (FT_MulAddFix):
|
|
|
|
|
+ Implement it.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-22 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ CMakeLists.txt: Move inclusion of `FindPkgConfig` down.
|
|
|
|
|
+
|
|
|
|
|
+ It must come after `CMAKE_TOOLCHAIN_FILE`.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1167.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-22 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Upgrade stop_offset to FT_Fixed from FT_F2Dot14
|
|
|
|
|
+
|
|
|
|
|
+2022-06-21 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * docs/CHANGES: Announce impending Infinality removal.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-21 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * ttgload.c (TT_Process_Composite_Glyph): Fix a signedness warning.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-21 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ s/fixed point/fixed-point/
|
|
|
|
|
+
|
|
|
|
|
+2022-06-21 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ .gitlab-ci.yml: Correctly upgrade `meson`.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-21 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Proposal: Feature control for variable COLRv1
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftdriver.h (variable-color-v1 property): Add documentation
|
|
|
|
|
+ for variable-colr-v1 property.
|
|
|
|
|
+ * src/truetype/ttdriver.c (tt_property_set): Ingest variable-control property
|
|
|
|
|
+ when called, set to enable_variable_colrv1 driver flag.
|
|
|
|
|
+ * src/truetype/ttobjs.h (TT_DriverRec): Add enable_variable_colrv1 flag.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-21 Xavier Claessens <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [meson] Disable FreeType in HarfBuzz fallback.
|
|
|
|
|
+
|
|
|
|
|
+ This avoids cyclic subproject configuration when the 'harfbuzz' feature is
|
|
|
|
|
+ enabled, or `--wrap-mode=forcefallback` is used, but HarfBuzz is built as a
|
|
|
|
|
+ subproject. HarfBuzz does the same and disables HarfBuzz support when
|
|
|
|
|
+ configuring FreeType as a subproject.
|
|
|
|
|
+
|
|
|
|
|
+ * meson.build (harfbuzz_dep): Implement it.
|
|
|
|
|
+
|
|
|
|
|
+ * subprojects/harfbuzz.wrap: New file.
|
|
|
|
|
+
|
|
|
|
|
+ * .gitlab-ci.yml [windows meson]: Use latest version of the meson 0.59
|
|
|
|
|
+ series, which has a necessary bug fix to make CI work.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-19 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Clean up phantom point accounting.
|
|
|
|
|
+
|
|
|
|
|
+ This formalizes that the phantom points appended in the outline
|
|
|
|
|
+ do not increase its point count, nor are they tagged or included
|
|
|
|
|
+ in any additional contours. Only their coordinates are stored.
|
|
|
|
|
+ They are counted in the glyph zone, however.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Infer `n_points`
|
|
|
|
|
+ from the outline size plus four phantom points.
|
|
|
|
|
+ * src/truetype/ttgxvar.h (TT_Vary_Apply_Glyph_Deltas): Remove this
|
|
|
|
|
+ argument.
|
|
|
|
|
+ * src/truetype/ttgload.c (tt_prepare_zone): Add phantom four.
|
|
|
|
|
+ (TT_Process_Simple_Glyph, load_truetype_glyph): Update all callers.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-19 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype/GX] Clean up phantom point adjustment.
|
|
|
|
|
+
|
|
|
|
|
+ This moves phantom point and advance variation adjustment next to
|
|
|
|
|
+ calculations. The logic stays the same, HVAR and VVAR take priority.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (load_truetype_glyph): Move it from here...
|
|
|
|
|
+ * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): ... to here
|
|
|
|
|
+ and check for HVAR and VVAR presence outside the main loop.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-18 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [stream] Fix reading s32 when long is s64
|
|
|
|
|
+
|
|
|
|
|
+ `FT_READ_LONG`, `FT_GET_LONG`, and related macros did not return
|
|
|
|
|
+ negative values when `long` is more than 32 bits. `FT_Stream_ReadULong`
|
|
|
|
|
+ would read four bytes into the LSB of an `FT_ULong` and return that.
|
|
|
|
|
+ Since this can never set the MSb of the `FT_ULong` when `FT_ULong` is
|
|
|
|
|
+ more than 32 bits the cast to `FT_Long` never resulted in a negative
|
|
|
|
|
+ value.
|
|
|
|
|
+
|
|
|
|
|
+ Fix this by modifying `FT_Stream_Read*` to return a type of the same
|
|
|
|
|
+ size as the bytes it is reading and changing the `FT_READ_*` and
|
|
|
|
|
+ `FT_GET_*` macros to cast to the same type returned by `FT_Stream_Read*`
|
|
|
|
|
+ but with the correctly signed type (instead of casting to what is
|
|
|
|
|
+ assumed to be the type of `var` which will happen automatically anyway).
|
|
|
|
|
+
|
|
|
|
|
+ There exist a few cases like with the `OFF3` variants where there isn't
|
|
|
|
|
+ generally a type with the correct size. `FT_PEEK_OFF3` works around this
|
|
|
|
|
+ loading the bytes into the three most significant bits and then doing a
|
|
|
|
|
+ signed shift down. `FT_NEXT_OFF3` also already worked correctly by
|
|
|
|
|
+ casting this signed value to another signed type. `FT_Stream_GetUOffset`
|
|
|
|
|
+ works correctly but one must be careful not to attempt to cast the
|
|
|
|
|
+ returned value to a signed type. Fortunately there is only
|
|
|
|
|
+ `FT_GET_UOFF3` and no `FT_GET_OFF3`.
|
|
|
|
|
+
|
|
|
|
|
+ All of these cases are handled correctly when reading values through
|
|
|
|
|
+ `FT_Stream_ReadFields` since it generically computes the signed value
|
|
|
|
|
+ through an `FT_Int32`. This change is essentially doing the same for
|
|
|
|
|
+ these macros.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/ftstream.h (FT_NEXT_*, FT_GET_*, FT_READ*):
|
|
|
|
|
+ Update macros and return types to use fixed size types for fixed size
|
|
|
|
|
+ values.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftstream.c (FT_StreamGet*, FT_StreamRead*): Dito.
|
|
|
|
|
+
|
|
|
|
|
+ Issue: #1161
|
|
|
|
|
+
|
|
|
|
|
+2022-06-17 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype/GX] Fix an old typo.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Vertical
|
|
|
|
|
+ advance is measured along y-coordinate.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-16 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype/GX] Clean up advance adjustment (Brrr).
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (load_truetype_glyph): Remove remaining code.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-16 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [type1] Directly search for eexec in private dict
|
|
|
|
|
+
|
|
|
|
|
+ This code originally just searched for `eexec`. This was later modified
|
|
|
|
|
+ to check that the `eexec` found is valid (not in a string or comment).
|
|
|
|
|
+ This was done by searching for `eexec` as before and then, for each
|
|
|
|
|
+ `eexec` found, searching from the beginning using the correct parsing to
|
|
|
|
|
+ see if the `eexec` was still found. If the private dictionary is large
|
|
|
|
|
+ and contains many copies of `eexec` which are not valid, the initial
|
|
|
|
|
+ part of the private dictionary is scanned once for each, potentially
|
|
|
|
|
+ leading to n^2 parsing time.
|
|
|
|
|
+
|
|
|
|
|
+ Instead of finding an initial `eexec` and then re-parsing to discover if
|
|
|
|
|
+ it is valid, drop the initial search for `eexec` and just parse to find
|
|
|
|
|
+ a valid `eexec`. This is strictly faster since the validation must
|
|
|
|
|
+ happen anyway and avoids restarting from the beginning each time an
|
|
|
|
|
+ `eexec` is found in the data.
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1parse.c (T1_Get_Private_Dict): avoid n^2 parsing
|
|
|
|
|
+
|
|
|
|
|
+ Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1328883
|
|
|
|
|
+
|
|
|
|
|
+2022-06-16 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype/GX] Clean up advance adjustment.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph, load_truetype_glyph):
|
|
|
|
|
+ Move the advance adjustment from here...
|
|
|
|
|
+ * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): ... to here and
|
|
|
|
|
+ simplify arguments.
|
|
|
|
|
+ * src/truetype/ttgxvar.h (TT_Vary_Apply_Glyph_Deltas): Update prototype
|
|
|
|
|
+ with fewer arguments.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-14 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [gzip] Handle inflate returning Z_NEED_DICT
|
|
|
|
|
+
|
|
|
|
|
+ When `inflate` returns `Z_NEED_DICT` this is currently not reported as
|
|
|
|
|
+ an error and callers may assume that the decompression succeeded when it
|
|
|
|
|
+ did not. In particular, a compressed table in a woff file may not
|
|
|
|
|
+ actually be decompressed and written as expected, leaving the backing
|
|
|
|
|
+ memory for the expanded table uninitialized.
|
|
|
|
|
+
|
|
|
|
|
+ * src/gzlip/ftgzip.c (FT_Gzip_Uncompress): treat `Z_NEED_DICT` as
|
|
|
|
|
+ indicating invalid data since there is no means to provide a dictionary.
|
|
|
|
|
+
|
|
|
|
|
+ Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1335712
|
|
|
|
|
+
|
|
|
|
|
+2022-06-13 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [woff] Don't allocate table entries until needed
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfwoff.c (woff_open_font): delay allocating space for the
|
|
|
|
|
+ table entries until they are actually written out with the data.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-12 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfwoff2.c (woff2_open_font): Partial revert.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47981.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-12 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Cosmetic macro change.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-11 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [woff, woff2] Avoid buffer zeroing.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfwoff.c (woff_open_font): Use Q-macros.
|
|
|
|
|
+ * src/sfnt/sfwoff2.c: Ditto.
|
|
|
|
|
+ (reconstruct_font): Allocate table_entry on stack.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-10 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [smooth] Fix GCC LTO crashes on Windows.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1164 by using a volatile variable around `setjmp`. It is hard to
|
|
|
|
|
+ say how this fixes crashes related to certain link-time optimizations.
|
|
|
|
|
+ This does not decrease the rendering performance.
|
|
|
|
|
+
|
|
|
|
|
+ * src/smooth/ftgrays.c (gray_convert_glyph_inner): Use volatile `error`.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-09 bruvzg <@bruvzg>
|
|
|
|
|
+
|
|
|
|
|
+ * src/smooth/ftgrays.c [FT_STATIC_RASTER]: Fix compilation.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-06 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [svg] Set linear advances when loading SVG glyphs
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/freetype.h (FT_GlyphSlotRec_): update doc
|
|
|
|
|
+ * src/cff/cffgload.c (cff_slot_load): do it
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Load_Glyph): do it
|
|
|
|
|
+
|
|
|
|
|
+ Fixes: #1156
|
|
|
|
|
+
|
|
|
|
|
+2022-06-01 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [svg] Clear correct flags for doc ownership
|
|
|
|
|
+
|
|
|
|
|
+ This issue was discovered with an SVG based font with some documents
|
|
|
|
|
+ compressed and other uncompressed. After loading the first compressed
|
|
|
|
|
+ document the ownership flag on the glyph slot was set to true but never
|
|
|
|
|
+ set to false. As a result after loading a compressed document a glyph
|
|
|
|
|
+ from an uncompressed document would load fine, but when this glyph slot
|
|
|
|
|
+ was cleared it would try to free its document resulting in a wild free.
|
|
|
|
|
+
|
|
|
|
|
+ * src/base/ftobjs.c (ft_glyphslot_clear): clear correct flags
|
|
|
|
|
+
|
|
|
|
|
+ Fixes: #1162
|
|
|
|
|
+
|
|
|
|
|
+2022-06-01 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [docs] Correct favicon.
|
|
|
|
|
+
|
|
|
|
|
+2022-06-01 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [docs] Use hinted favicon.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-27 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [docs] Update favicon.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-25 Behdad Esfahbod (بهداد اسفهبد) <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/ttmtx.c (tt_face_get_metrics): Apply variations unconditionally.
|
|
|
|
|
+
|
|
|
|
|
+ This causes a speed-up of approx. 20% for getting advance widths.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-23 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Support reading 32bit/16bit VarStore deltas
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/ftmmtypes.h (FT_ItemVarDelta): Define type
|
|
|
|
|
+ to be used for delta arrays, upgrade to FT_long.
|
|
|
|
|
+ * src/truetype/ttgxvar.c: Adhere to long_words bit and read either
|
|
|
|
|
+ Short/Byte pairs or Long/Short pairs, as defined by spec. For better
|
|
|
|
|
+ readability, define macro for repetitive read code.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-20 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Handle 0xFFFF special value inside delta retrieval function
|
|
|
|
|
+
|
|
|
|
|
+ * truetype/ttgxvar.c (tt_hvadvance_adjust, tt_apply_mvar,
|
|
|
|
|
+ tt_var_get_item_delta): Remove special 0xFFFF handling in favor of less
|
|
|
|
|
+ redundant handling inside the tt_var_get_item_delta function, as it is
|
|
|
|
|
+ equivalent to returning a 0 delta. Avoids code-duplication checking for
|
|
|
|
|
+ special value 0xFFFF.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-19 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype, snft] Add service methods for `DeltaSetIdxMap` and `VarStore`.
|
|
|
|
|
+
|
|
|
|
|
+ This will be needed for 'COLR' v1 variation support.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.h (GX_ItemVarData, GX_AxisCoords, GX_VarRegion,
|
|
|
|
|
+ GX_VarItemStore, GX_DeltaSetIdxMap): Move structures to...
|
|
|
|
|
+ * include/freetype/internal/ftmmtypes.h: ... this new file.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/internal/service/svmm.h (MultiMasters): Include
|
|
|
|
|
+ `ftmmtypes.h`.
|
|
|
|
|
+ (FT_Var_Load_Delta_Set_Idx_Map_Func, FT_Var_Load_Item_Var_Store_Func,
|
|
|
|
|
+ FT_Var_Get_Item_Delta_Func, FT_Var_Done_Item_Var_Store_Func,
|
|
|
|
|
+ FT_Var_Done_Delta_Set_Idx_Map_Func): New function typedefs.
|
|
|
|
|
+ (MultiMasters): Add them.
|
|
|
|
|
+ (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffdrivr.c (cff_load_item_variation_store,
|
|
|
|
|
+ cff_load_delta_set_index_mapping, cff_get_item_delta,
|
|
|
|
|
+ cff_done_item_variation_store, cff_done_delta_set_index_map): New wrapper
|
|
|
|
|
+ methods calling into mm service.
|
|
|
|
|
+ (cff_service_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (ft_var_load_item_variation_store,
|
|
|
|
|
+ ft_var_load_delta_set_index_mapping, ft_var_get_item_delta,
|
|
|
|
|
+ ft_var_done_item_variation_store, ft_var_done_delta_set_index_map): Renamed
|
|
|
|
|
+ to ...
|
|
|
|
|
+ (tt_var_load_item_variation_store, tt_var_load_delta_set_index_mapping,
|
|
|
|
|
+ tt_var_get_item_delta, tt_var_done_item_variation_store,
|
|
|
|
|
+ tt_var_done_delta_set_index_map): ... this for consistency.
|
|
|
|
|
+ Mark them as non-static.
|
|
|
|
|
+ * src/truetype/ttgxvar.h: Add corresponding prototypes.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * src/type1/t1driver.c (t1_service_multi_masters): Updated.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-19 Dominik Röttsches <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Move deallocation of `DeltaSetIdxMap` into own function.
|
|
|
|
|
+
|
|
|
|
|
+ This is a preparation for handling `DeltaSetIdxMap` and `VarStore` as a
|
|
|
|
|
+ FreeType service.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (ft_var_done_delta_set_index_map): New function.
|
|
|
|
|
+ (tt_done_blend): Use it.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-18 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * builds/toplevel.mk (do-dist): Don't remove meson wrap files.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1157.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-18 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * subprojects/zlib.wrap: Update to zlib version 1.2.12.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-18 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ REAMDE: Mention that gitlab's 'download' button doesn't work.
|
|
|
|
|
+
|
|
|
|
|
+ This is because the `git archive` command doesn't preserve submodules.
|
|
|
|
|
+
|
|
|
|
|
+ Note that currently there is no support for disabling the 'download' button
|
|
|
|
|
+ in gitlab (https://gitlab.com/gitlab-org/gitlab/-/issues/17032).
|
|
|
|
|
+
|
|
|
|
|
+ Fixes issue #1158.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-11 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Handle inner/outer index values 0xFFFF/0xFFFF.
|
|
|
|
|
+
|
|
|
|
|
+ This was introduced in OpenType 1.8.4.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgxvar.c (ft_var_load_delta_set_index_mapping,
|
|
|
|
|
+ tt_hvadvance_adjust, ft_var_load_mvar, tt_apply_mvar): Handle special
|
|
|
|
|
+ inner/outer index values.
|
|
|
|
|
+ (ft_var_load_item_variation_store): Add test.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1154.
|
|
|
|
|
+
|
|
|
|
|
+2022-05-01 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * Version 2.12.1 released.
|
|
|
|
|
+ ==========================
|
|
|
|
|
+
|
|
|
|
|
+ Tag sources with `VER-2-12-1'.
|
|
|
|
|
+
|
|
|
|
|
+ * docs/VERSION.TXT: Add entry for version 2.12.1.
|
|
|
|
|
+ * docs/CHANGES, docs/release: Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * README, 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.12.0/2.12.1/, s/2120/2121/.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
|
|
|
|
|
+
|
|
|
|
|
+ * builds/unix/configure.raw (version_info): Set to 24:3:18.
|
|
|
|
|
+ * CMakeLists.txt (VERSION_PATCH): Set to 1.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-30 Anuj Verma <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sdf] Do not throw errors for invisible glyphs.
|
|
|
|
|
+
|
|
|
|
|
+ * src/sdf/ftsdfrend.c (ft_sdf_render, ft_bsdf_render): Return `FT_Err_Ok` if
|
|
|
|
|
+ width or height is zero, since some glyphs do not generate visible bitmaps.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1150.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-30 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfobjs.c (sfnt_load_face): Set `FT_FACE_FLAG_COLOR` for SVG fonts.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1151.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-27 Brendan Shanks <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ autogen.sh: Fix building when freetype is itself a git submodule.
|
|
|
|
|
+
|
|
|
|
|
+ There are situations where .git is not a directory, like when
|
|
|
|
|
+ freetype is a submodule in another repository.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-26 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [builds/windows] Simplify non-desktop UWP check.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes mingw compilation described in !159.
|
|
|
|
|
+
|
|
|
|
|
+ * builds/windows/ftsystem.c: Do not use WINAPI_FAMILY_PARTITION macro.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-25 Alexei Podtelezhnikov <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Reset IUP flags in `TT_RunIns`.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1148 by moving the flag initialization back, partly reverting
|
|
|
|
|
+ 7809007a and fd03dcc1. Initializing these flags elsewhere skips 'cvt'.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttinterp.c (TT_RunIns): Initialize the IUP flag here...
|
|
|
|
|
+ (TT_Run_Context): ... instead of here.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-24 Xavier Claessens <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [meson] Remove `default_library=both` from `default_options`.
|
|
|
|
|
+
|
|
|
|
|
+ It is inconsistent with what all other Meson projects do.
|
|
|
|
|
+
|
|
|
|
|
+ It also prevents static linking to FreeType when it is a subproject because
|
|
|
|
|
+ `default_options` in a subproject takes precedence on values set on the main
|
|
|
|
|
+ project. For example, building 'GStreamer' with `-Ddefault_library=static`
|
|
|
|
|
+ would still dynamically link on FreeType unless the user also sets
|
|
|
|
|
+ `-Dfreetype2:default_library=static`.
|
|
|
|
|
+
|
|
|
|
|
+ * meson.build: Updated.
|
|
|
|
|
+
|
|
|
|
|
+ * .gitlab-ci.yml: Retain `both` option for testing.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-19 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Integer overflow.
|
|
|
|
|
+
|
|
|
|
|
+ Reported as
|
|
|
|
|
+
|
|
|
|
|
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46792
|
|
|
|
|
+
|
|
|
|
|
+2022-04-16 Georg Brandl <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_SVG]: Fix segfault.
|
|
|
|
|
+
|
|
|
|
|
+ This can happen if the function is called with `size` being `NULL`.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1147.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-14 Steve Lhomme <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ .gitlab-ci.yml: Add a Universal Windows build target
|
|
|
|
|
+
|
|
|
|
|
+ It's compiled for Windows 10 and up, ensuring UNICODE is set (default for UWP)
|
|
|
|
|
+ and selecting the proper WINAPI_FAMILY (WINAPI_FAMILY_APP).
|
|
|
|
|
+
|
|
|
|
|
+ Do not try to run the UWP exe in the Docker as it doesn't work.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-04 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [sfnt] Correct FT_ColorStopIterator documentation.
|
|
|
|
|
+
|
|
|
|
|
+ * include/freetype/ftcolor.h (FT_ColorStopIterator): the user should not
|
|
|
|
|
+ set `p` to NULL before calling `FT_Get_Colorline_Stops`. `p` and
|
|
|
|
|
+ `num_color_stops` are set by `FT_Get_Paint`. `p` and
|
|
|
|
|
+ `current_color_stop` are updated by `FT_Get_Colorline_Stops`.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-01 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * builds/unix/configure.raw: Add option `--with-librsvg`.
|
|
|
|
|
+
|
|
|
|
|
+ Since 'librsvg' is written in Rust, this option allows distributions to
|
|
|
|
|
+ avoid a dependency on the entire Rust toolchain to provide the FreeType demo
|
|
|
|
|
+ programs.
|
|
|
|
|
+
|
|
|
|
|
+ Suggested by Lars Wendler in !156.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-01 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ * src/sfnt/sfwoff.c (reconstruct_glyf): Fix gcc 10 warning.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-01 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [gzip] Update sources to zlib 1.2.12.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-01 Eric Jing <@CPUcontrol>
|
|
|
|
|
+
|
|
|
|
|
+ CMakeLists.txt: Fix `Info.plist` path.
|
|
|
|
|
+
|
|
|
|
|
+ When building a framework using CMake with `add_subdirectory`, CMake must be
|
|
|
|
|
+ able to find `freetype-Info.plist` when configuring the framework
|
|
|
|
|
+ properties.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1145.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-01 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ Whitespace.
|
|
|
|
|
+
|
|
|
|
|
+2022-04-01 Ben Wagner <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ [truetype] Use SUB_LONG for component offset.
|
|
|
|
|
+
|
|
|
|
|
+ * src/truetype/ttgload.c (TT_Process_Composite_Component): do it.
|
|
|
|
|
+
|
|
|
|
|
+ Bug: https://crbug.com/1309429
|
|
|
|
|
+
|
|
|
|
|
+2022-03-31 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ CMakeList.txt: Update code to handle recent changes for `freetype.pc`.
|
|
|
|
|
+
|
|
|
|
|
+ Fixes #1144.
|
|
|
|
|
+
|
|
|
|
|
+2022-03-31 Werner Lemberg <[email protected]>
|
|
|
|
|
+
|
|
|
|
|
+ CMakeLists.txt: s/PKG_CONFIG/PKGCONFIG/, s/REQUIRED_/REQUIRES_/.
|
|
|
|
|
+
|
|
|
2022-03-31 Werner Lemberg <[email protected]>
|
|
2022-03-31 Werner Lemberg <[email protected]>
|
|
|
|
|
|
|
|
* Version 2.12.0 released.
|
|
* Version 2.12.0 released.
|