freetype2/src
Seigo Nonaka 115e927540 [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-19 06:50:28 +02:00
..
autofit Minor compiler warning fixes. 2023-05-08 07:22:59 +02:00
base Add new load flag `FT_LOAD_NO_SVG`. 2023-05-15 16:04:15 +02:00
bdf * src/bdf/bdfdrivr.c: Clean up interface. 2023-05-07 14:59:50 +02:00
bzip2 * src/bzip2/ftbzip2.c: Signature fixes. 2023-05-08 06:26:43 +02:00
cache [cache] Merge functions. 2023-05-12 22:27:08 -04:00
cff Add new load flag `FT_LOAD_NO_SVG`. 2023-05-15 16:04:15 +02:00
cid [t1cid] Set FT_FACE_FLAG_CID_KEYED. 2023-05-11 14:31:23 +00:00
dlg * src/*: Replace leading underscores with trailing ones in dummy variables. 2023-02-26 20:18:54 +01:00
gxvalid Update all copyright notices. 2023-01-17 09:18:25 +01:00
gzip [gzip] File `infback.c` is not needed. 2023-03-07 08:55:58 +01:00
lzw Fix 'fall-through' warning messages. 2023-02-08 21:09:32 +01:00
otvalid Update all copyright notices. 2023-01-17 09:18:25 +01:00
pcf * src/pcf/pcfdrivr.c: Signature fix. 2023-05-07 16:42:01 +02:00
pfr [pfr] Signature fixes. 2023-05-07 15:57:06 +02:00
psaux * src/psaux/t1cmap.c: Signature fixes. 2023-05-08 06:46:55 +02:00
pshinter [pshinter] Signature fixes. 2023-05-07 20:26:12 +02:00
psnames * src/psnames/psmodule.c: Use `FT_CALLBACK_DEF`. 2023-05-07 14:59:50 +02:00
raster [raster] Signature fixes. 2023-05-07 20:51:32 +02:00
sdf [sdf] Signature fixes. 2023-05-07 21:06:14 +02:00
sfnt * src/sfnt/ttcmap: Signature fixes. 2023-05-07 19:16:38 +02:00
smooth * src/smooth/ftgrays.c (FT_SSE2): Don't define for VMS. 2023-05-09 07:15:53 +02:00
svg * src/svg/ftsvg.c: Signature fixes. 2023-05-07 20:57:22 +02:00
tools apinames.c: Add comment. 2023-03-08 10:49:42 +01:00
truetype [truetype] Reduce heap allocation of `deltaSet` variation data. 2023-05-19 06:50:28 +02:00
type1 * src/type1/t1load.c: Signature fixes. 2023-05-07 14:59:50 +02:00
type42 * src/type42/t42parse.c: Signature fixes. 2023-05-07 16:25:37 +02:00
winfonts * src/winfonts/winfnt.c: Signature fixes. 2023-05-07 16:30:21 +02:00