Behdad Esfahbod
b475a2ab29
[array] Adjust operator !=
2022-07-17 18:44:11 -06:00
Behdad Esfahbod
9518d602f3
[atomic] Disable compiler memory barrier on MSVC
...
It keeps giving me internal compiler error.
https://github.com/harfbuzz/harfbuzz/issues/3728
2022-07-17 17:03:40 -06:00
Behdad Esfahbod
f0707e2348
[atomic] Add compiler memory_r_barrier
...
https://github.com/harfbuzz/harfbuzz/issues/3728
2022-07-17 16:47:16 -06:00
Behdad Esfahbod
f3151b6582
[ArrayOf family] Use memory barrier before accessing array
...
Without it, the compiler was reordering and batching the read
of array length and array[0] if the 0'th member was accessed
constantly and function was inlined. This felt safe to the
compiler because HB_VAR_ARRAY is 1, but could be unsafe actually.
The memory barrier disallows that.
This was found by afl/honggfuzz address sanitizers.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49187
2022-07-17 16:22:29 -06:00
Behdad Esfahbod
90e40f24fe
[algs] Tweak attribute(packed) usage
...
Allow disabling it. Also don't cast this pointer.
2022-07-17 15:01:04 -06:00
Behdad Esfahbod
af84680f23
[GSUB] Remove a reinterpret_cast
2022-07-17 12:00:04 -06:00
Behdad Esfahbod
9843f07658
[OffsetTo] Try catching nullable offsets to unbounded types
...
Doesn't catch all cases; if type is not fully defined at
OffsetTo time, we can't know.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1300
to the best we can do.
2022-07-15 16:04:40 -06:00
Behdad Esfahbod
1327d8e3df
[layout-common] Reshuffle code so Feature is defined before it's used
2022-07-15 16:03:38 -06:00
Behdad Esfahbod
f7147835eb
[colr] Add MIN_SIZE to Paint
2022-07-15 16:03:25 -06:00
Behdad Esfahbod
e1d2facd53
[null] Add hb_has_null_size() and hb_has_min_size()
2022-07-15 16:02:58 -06:00
Behdad Esfahbod
6ed57de15c
[ft] Fix negative font sizes for bitmaps
2022-07-15 15:09:28 -06:00
Behdad Esfahbod
307ee9baff
[ft] Fix bitmap-only vertical metrics
2022-07-15 14:48:29 -06:00
Behdad Esfahbod
87d338eb61
[ft] Fix test
2022-07-15 14:26:47 -06:00
Khaled Hosny
e294200dac
[ft] Check for FT_Get_Transform at build time
2022-07-15 21:59:33 +02:00
Behdad Esfahbod
901236f721
[ft] Implement loading (color) bitmap fonts
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/489
Something about the vertical metrics is still off, not matching
hb-ot. I cannot figure out what.
2022-07-15 13:35:14 -06:00
Behdad Esfahbod
3ac110560d
[ft] Fix scale when font-sizes are negative
2022-07-15 12:48:11 -06:00
Behdad Esfahbod
d68507d062
[arabic] Pause after calt only if no rclt
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1573
2022-07-15 12:27:46 -06:00
Behdad Esfahbod
8b379ddc76
[test-iter] Add back test of OT namespace iteration
2022-07-14 16:20:04 -06:00
Garret Rieger
5363e40de1
[reorg] update build files.
2022-07-13 20:25:13 -06:00
Garret Rieger
d82ace5c6f
[reorg] add TODO to RangeRecord.
2022-07-13 20:25:13 -06:00
Garret Rieger
c1e280ea78
[reorg] Move Coverage, RangeRecord into new namespace layout.
2022-07-13 20:25:13 -06:00
Garret Rieger
9c2518988d
[repack] Don't count space isolation against round limit.
...
Restore max rounds to 20 but don't count space isolation against the limit. The number of iterations space isolation can make changes for is already bounded to a reasonable max (the number of lookups in the font) so no need to cap the number of iterations.
2022-07-13 20:24:59 -06:00
Behdad Esfahbod
a2f0723148
[GPOS] Adjust mark attachment on multiple substitution some more
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1545
2022-07-13 16:02:39 -06:00
Behdad Esfahbod
ac216972ab
[subset] Add table size blowup bound
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3091
2022-07-13 15:32:19 -06:00
Behdad Esfahbod
4b3afafb00
[array] Use hb_swap() in reverse()
2022-07-13 15:13:07 -06:00
Behdad Esfahbod
87167acfe3
Merge pull request #3704 from harfbuzz/64k
...
Towards breaking the 64k in GSUB/GPOS
2022-07-13 14:58:09 -06:00
Garret Rieger
a369ab133b
[repacker] Increase max_rounds when called via public api.
2022-07-13 14:01:42 -06:00
Behdad Esfahbod
4ee471922d
More -Wcomma fixes
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3716
2022-07-13 13:59:35 -06:00
Behdad Esfahbod
c2712ff4f5
Reorder hb_ot_shaper_t members to save 8 bytes of data per shaper
2022-07-13 13:34:11 -06:00
Behdad Esfahbod
e5f0bc8f0a
[set] Save a few kilobytes via type erasure of process()
2022-07-13 13:22:34 -06:00
Behdad Esfahbod
42da7da5ef
Fix HB_NO_SHAPER HB_NO_OT_SHAPE build
2022-07-13 12:46:36 -06:00
Behdad Esfahbod
015aecfcdd
[use-table] Port to using packtab
...
Saves around 9kb.
2022-07-13 12:24:46 -06:00
Behdad Esfahbod
0fcd1decb7
Fix file permissions
2022-07-13 12:17:35 -06:00
Behdad Esfahbod
7549d447ba
[>64k:glyf] Implement composites for >64k
...
Implements https://github.com/be-fonts/boring-expansion-spec/issues/42
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
09de94788b
[>64k:glyf] Hid composite glyphIndex
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
df7eebf40a
[>64k:layout] Fix layout of RangeRecord
...
https://github.com/be-fonts/boring-expansion-spec/issues/30
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
99f017f41d
[>64k:layout:GSUBGPOS] Implement format 2
...
Implements https://github.com/be-fonts/boring-expansion-spec/issues/58
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
9ef9fc0114
[>64k:layout] Templatize GSUBGPOSFormat1
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
5fd0a3f0b9
[>64k:layout] Templatize GSUBGPOSFormat1
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
f6c2aaeea4
[>64k:layout] Add List16OfOffsetTo
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
6d0e3e677b
[>64k:layout] Split GSUBGPOSVersion1 into own struct
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
04c5cd4085
[subset/layout] Move find_duplicate_features to subset from layout
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
1bf8fa2f1f
[>64k:layout:(Chain)Context] Implement format 4
...
Implements rest of https://github.com/be-fonts/boring-expansion-spec/issues/34
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
0f13eb1f5c
[>64k:layout] Templatize (Chain)ContextFormat1
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
d1f58e5979
[>64k:layout:(Chain)Context] Implement format 5
...
Implements part of https://github.com/be-fonts/boring-expansion-spec/issues/34
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
a90c5af9d2
[>64k:layout] Templatize (Chain)ContextFormat2
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
cc83b0b8fd
[>64k:layout:MarkBasePos/MarkMarkPos/MarkLigPos] Implement format 2
...
Implements https://github.com/be-fonts/boring-expansion-spec/issues/40
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
4b43070e2f
[>64k:layout] Templatize MarkBasePos/MarkMarkPos/MarkLigPos
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
f0d6dda5a6
[>64k:layout:PairPos] Implement format 3
...
Implements rest of https://github.com/be-fonts/boring-expansion-spec/issues/38
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
298ee47c55
[>64k:layout] Templatize PairPosFormat1
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
e9f8010fd0
[>64k:layout:PairPos] Templatize & implement format 4
...
Implements part of https://github.com/be-fonts/boring-expansion-spec/issues/38
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
ecd8bc5a9c
[>64k:layout:LigatureSubst] Implement format 2
...
Implements https://github.com/be-fonts/boring-expansion-spec/issues/33
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
9d0e9faa43
[>64k:layout] Templatable bunch of GSUBGPOS internal functions
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
429b387a6f
[>64k:layout] Support HBUINT24 in skippy_iter
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
1ef67a6d66
[gsubgpos] Remove HBUINT16 from matcher
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
704e696ad0
[>64k:layout] Templatize LigatureSubst
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
27d24212db
[>64k:layout:AlternateSubst] Implement format 2
...
Implements rest of https://github.com/be-fonts/boring-expansion-spec/issues/32
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
c53d3ad51e
[>64k:layout] Templatize AlternateSet
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
a58a48622a
[>64k:layout:MultipleSubst] Implement format 2
...
Implements part of https://github.com/be-fonts/boring-expansion-spec/issues/32
Subset is NOT updated to lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
684c8fcea7
[>64k:layout] Templatize MultipleSubst
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
8775e9b4a4
[>64k:layout:SingleSubst] Implement format 3/4
...
Implements https://github.com/be-fonts/boring-expansion-spec/issues/31
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
e3caf8d50a
[>64k:layout] Templatize SingleSubst
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
ca5c8a6419
[>64k:layout:Coverage] Implement format 3/4
...
Implements rest of https://github.com/be-fonts/boring-expansion-spec/issues/30
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
25de6fb4e7
[>64k:layout:ClassDef] Implement format 3/4
...
This implements part of https://github.com/be-fonts/boring-expansion-spec/issues/30
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
9286526f37
[>64k:layout] Templatize Coverage & ClassDef
...
Have not added new formats yet.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
e8cce9d1b3
[>64k:layout] Add SmallTypes & MediumTypes
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
d8f9d51780
[hashmap] Add keys_ref() and values_ref()
2022-07-12 13:19:31 -06:00
Behdad Esfahbod
cddcb31065
[vector] Remove residual nullptr_t from when hashmap needed it
2022-07-12 13:15:38 -06:00
Behdad Esfahbod
46a36771f4
[draw] Fix leak from e0a5231657
2022-07-12 12:03:00 -06:00
Behdad Esfahbod
f8544cbfc0
[draw] Fix regression from e0a5231657
2022-07-12 11:52:33 -06:00
Behdad Esfahbod
d15041be7d
[GSUB/GPOS] Trace toplevel sanitize
2022-07-12 11:11:22 -06:00
Behdad Esfahbod
7c4e9080c0
[sanitize] Minor trace format fixup
...
This likely() is unlikely to make a difference, and obscures
the return_trace() message by writing out "something" instead
of the true/false value.
2022-07-11 21:52:41 -06:00
Matthias Clasen
d826a5920c
docs: Clarify 0xFFFF as palette index
...
Mention that a palette index of 0xFFFF
means to use the foreground color.
2022-07-10 11:08:52 -06:00
Behdad Esfahbod
6d051f4018
[layout] Simplify StructAfter<> usage
2022-07-08 14:09:04 -06:00
Behdad Esfahbod
5192294f83
.
2022-07-08 14:09:04 -06:00
Garret Rieger
29f149c16c
[subset] cache sanitized tables in subset plan to avoid sanitizing tables multiple times.
2022-07-08 13:42:38 -06:00
Behdad Esfahbod
8b349e1139
[gsubgpos] Remove HBUINT16 from match functions signatures
2022-07-08 12:05:01 -06:00
Behdad Esfahbod
f114b18c58
[gsubgpos] Break skippy_iter set_match_func into two
2022-07-08 12:04:14 -06:00
Behdad Esfahbod
8a107125a5
[layout] Make SubstLookup:serialize_single take iterators
2022-07-08 12:02:11 -06:00
Behdad Esfahbod
8a971d01e9
[layout] Use is_source_of instead of is_iterator
2022-07-08 12:01:48 -06:00
Behdad Esfahbod
0dc0da054d
[iter] Add hb_is_sorted_iterator(_of)
2022-07-08 12:01:38 -06:00
Behdad Esfahbod
2c67261723
[open-type] Add HBGlyph24
2022-07-08 12:01:26 -06:00
Behdad Esfahbod
7cfe7fe651
[null] Change null bytes for RangeRecord
...
Should be harmless.
2022-07-08 12:01:18 -06:00
Behdad Esfahbod
486555c691
[open-type] Add Array24Of<> and SortedArray24Of<>
2022-07-08 12:01:07 -06:00
Behdad Esfahbod
1e503f587b
[null] Add DECLARE_NULL_NAMESPACE_BYTES_TEMPLATE1
2022-07-08 12:00:53 -06:00
Behdad Esfahbod
ea11029a6e
[GPOS] Split LigatureArray.hh
2022-07-08 11:58:43 -06:00
Behdad Esfahbod
68b2742fe4
[GPOS] Move code around
2022-07-07 16:11:15 -06:00
Behdad Esfahbod
6a3043a0c1
Fix tests
2022-07-07 14:51:37 -06:00
Behdad Esfahbod
aa68657434
[Makefile.sources/meson.build] Sort file names
2022-07-07 14:07:45 -06:00
Behdad Esfahbod
0b0e3b30ce
[GPOS] Break down PairPosFormat1 into new layout
2022-07-07 14:06:44 -06:00
Garret Rieger
6fad6b4113
[repacker] add tests for special casing of 24bit offsets.
2022-07-06 19:18:27 +00:00
Garret Rieger
b4f561dbbf
[subset] Add some comments to find_space_roots/find_32_bit_roots methods.
2022-07-06 18:49:23 +00:00
Garret Rieger
401066bf3d
[subset] Prepare the repacker for handling 24bit offsets in GSUB/GPOS.
...
The boring expansion (https://github.com/be-fonts/boring-expansion-spec ) plans to introduce 24bit offsets into GSUB/GPOS. This changes the repacker to treat 24 bit offsets similar to 32 bit offsets and assign the top level 24 bit offsets into spaces to improve packing.
2022-07-06 18:44:40 +00:00
Behdad Esfahbod
c091d029c2
Merge pull request #3706 from lb90/dwrite-dll
...
Load DirectWrite dynamically
2022-07-06 10:51:04 -06:00
Luca Bacci
1abc14b463
Do not link with the DWrite lib
...
It's loaded dynamically now
2022-07-06 17:55:39 +02:00
Luca Bacci
c22acfa8bd
Fix function pointer typedef
2022-07-06 17:55:24 +02:00
Kleis Auke Wolthuizen
79eb0f7486
[GSUB] Fix build on GCC < 7
2022-07-06 14:00:16 +02:00
Kleis Auke Wolthuizen
3238cb744b
[GPOS] Fix build on GCC < 7
2022-07-06 14:00:16 +02:00
Luca Bacci
3e881efbe4
Revert "Revert "Revert "[hb-directwrite] Don't load dwrit.dll dynamically"""
...
This reverts commit 361a438658
.
2022-07-06 13:51:56 +02:00
Kleis Auke Wolthuizen
7b51bc95d9
[cplusplus] Fix build on GCC < 7
2022-07-06 13:12:00 +02:00