Garret Rieger
674f0194a3
[repacker] add extension pairpos split test.
2022-07-29 22:21:31 +00:00
Garret Rieger
1d2516f037
[repack] get basic pairpos split test working.
2022-07-29 22:21:31 +00:00
Garret Rieger
fb3f6ad7c0
[repacker] ensure lookup map is updated when lookup memory location changes.
2022-07-29 22:21:31 +00:00
Garret Rieger
4e7360f78d
[repacker] begin adding tests for PairPosFormat1 splitting.
2022-07-29 22:21:31 +00:00
Garret Rieger
f1bfb6585f
[repacker] cleanup debug prints.
2022-07-29 22:21:31 +00:00
Garret Rieger
65afed047d
[repacker] more bug fixes.
2022-07-29 22:21:31 +00:00
Garret Rieger
1002a3dcd3
[repacker] bug fixes.
2022-07-29 22:21:31 +00:00
Garret Rieger
a5c2c8c131
[repack] fix incorrect shrink.
2022-07-29 22:21:31 +00:00
Garret Rieger
d589ce68ea
[repacker] add extension subtable when needed while adding new PairPos table's.
2022-07-29 22:21:31 +00:00
Garret Rieger
5024d4de67
[repack] more PairPos split implementation.
2022-07-29 22:21:31 +00:00
Garret Rieger
510b8ab101
[repack] link new coverage in PairPosFormat1::clone_range.
2022-07-29 22:21:31 +00:00
Garret Rieger
29cb8818cd
[repacker] new coverage serialization in PairPosFormat1.
2022-07-29 22:21:31 +00:00
Garret Rieger
8d63f60e5b
[repack] add graph_t::move_child helper function.
2022-07-29 22:21:31 +00:00
Garret Rieger
8e5fffc44a
[repack] add helper to create new nodes.
...
Switch to malloc'ing each node individually rather than trying to guess up front the total buffer space needed.
2022-07-29 22:21:31 +00:00
Garret Rieger
bf0986c7d1
[repack] sketch splitting mechanism for PairPosFormat1.
2022-07-29 22:21:30 +00:00
Garret Rieger
f6a242b605
[repacker] begin adding PairPos splitting support.
2022-07-29 22:21:30 +00:00
Garret Rieger
69913e012e
[repacker] Update repacker api method to take a table tag.
...
This is needed to allow table specific optimizations to be performed during repacking.
2022-07-29 16:16:46 -06:00
Behdad Esfahbod
28c02b3768
[ot-font] Minor simplification
2022-07-29 15:55:16 -06:00
Behdad Esfahbod
149b030520
Fix thinko
2022-07-29 12:41:30 -06:00
Behdad Esfahbod
f7677213d7
[SingleSubstFormat1] Don't close glyphs in degenerate cases
...
Fixes https://oss-fuzz.com/testcase-detail/5145429829877760
2022-07-29 12:00:29 -06:00
Behdad Esfahbod
3da50c50aa
Remove unused const
2022-07-29 11:57:15 -06:00
Khaled Hosny
0c4495e555
[meson] Don’t use f-string
...
It requires Python 3.6+
https://github.com/harfbuzz/harfbuzz/pull/3760#issuecomment-1198972788
2022-07-29 13:22:18 +02:00
Behdad Esfahbod
e51526bf06
[CompositeGlyph] Add HB_NO_BEYOND_64K
2022-07-28 09:53:30 -06:00
Behdad Esfahbod
6e6b9cf972
[use-table] Adjust main() code
2022-07-28 09:48:43 -06:00
Khaled Hosny
eaf7e5686c
[meson] Use pathlib in gen-harfbuzzcc.py
2022-07-28 13:49:06 +02:00
Khaled Hosny
5df2347cf3
[meson] Don’t tamper with paths in amalgam files
...
Using os.path.basename() breaks files in subdirectories
(gsubgpos-graph.cc instead of graph/gsubgpos-graph.cc).
Use paths relative to current source dir instead.
2022-07-28 13:49:06 +02:00
Behdad Esfahbod
0c5b60acbd
[use-table] Fix previous commit
2022-07-27 14:00:06 -06:00
Behdad Esfahbod
0788f77371
[use-table] Add a main() to print categories
2022-07-27 13:58:44 -06:00
Behdad Esfahbod
9aaa835ac1
[use-table] Regenerate with latest packtab
2022-07-27 12:24:43 -06:00
Behdad Esfahbod
3698ae25bf
[harfbuzz-subset.cc] Update
2022-07-26 14:41:34 -06:00
Behdad Esfahbod
e2cc34e190
[subset/GPOS] Fix a fuzzer timeout test
...
Fixes https://oss-fuzz.com/testcase-detail/5234369031176192
2022-07-26 12:31:40 -06:00
Garret Rieger
241ebc9354
[repacker] fix include paths.
2022-07-26 12:22:17 -06:00
Garret Rieger
5f4adb9bf3
[repacker] fix to lookup size comparison.
2022-07-26 12:22:17 -06:00
Garret Rieger
6627204c4d
[repacker] Makefile fix.
2022-07-26 12:22:17 -06:00
Garret Rieger
f56e66f3f0
[repacker] for ext promotion choose lookups from highest subtables per byte to lowest.
...
Attempts to roughly maximize the number of subtables that are non-ext.
2022-07-26 12:22:17 -06:00
Garret Rieger
9d0b2da51b
[repacker] count subtable size in each group of consecutive layers for extension promotion decisions.
...
Enforce that the following groups are all <64k in size:
- LookupList + Lookups
- Lookups + SubTables
- SubTables + Descendants
2022-07-26 12:22:17 -06:00
Garret Rieger
3d37b9f4db
[repacker] when calculating 16bit space size also consider ext lookup subtables.
2022-07-26 12:22:17 -06:00
Garret Rieger
9db3beb721
[repacker] include LookupList size when calculating size of 16bit space for ext promotion decisions.
2022-07-26 12:22:17 -06:00
Garret Rieger
e0607af976
[repacker] Use extension promotion when repacking invoked via hb-subset-repacker (eg. from fonttools).
2022-07-26 12:22:17 -06:00
Garret Rieger
8d611a7fd0
[repacker] remove temporary visibility overrides in gsubgpos.
2022-07-26 12:22:17 -06:00
Garret Rieger
7de136f8a8
[repacker] add ext promotion test.
2022-07-26 12:22:17 -06:00
Garret Rieger
c38896e07c
[repacker] todo.
2022-07-26 12:22:17 -06:00
Garret Rieger
ad0041f5f7
[repacker] Add basic version of the extension promotion selection algorithm.
2022-07-26 12:22:17 -06:00
Garret Rieger
0b6ca424fc
[repacker] fix GSTAR sanitize.
2022-07-26 12:22:17 -06:00
Garret Rieger
11709f0fbe
[repacker] support extension promotion in 24bit GSUB/GPOS.
2022-07-26 12:22:17 -06:00
Garret Rieger
b37374b04f
[repacker] save buffer reference (not copy).
2022-07-26 12:22:17 -06:00
Garret Rieger
ae290ff4fe
[repacker] add sanitization for GSUB/LookupList/Lookup during extension promotion.
2022-07-26 12:22:17 -06:00
Garret Rieger
ce03c3538a
[repacker] add make_extension_context_t.
2022-07-26 12:22:17 -06:00
Garret Rieger
ebb64b50da
[repacker] size buffer correctly.
2022-07-26 12:22:17 -06:00
Garret Rieger
815bb82b4d
[repack] fix incorrect extension object bounds.
2022-07-26 12:22:17 -06:00
Garret Rieger
7e6f6c3e88
[repack] fix new node bounds.
2022-07-26 12:22:17 -06:00
Garret Rieger
b1d38a6d0b
[repack] WIP implement extension promotion mechanism.
2022-07-26 12:22:17 -06:00
Garret Rieger
3f7a74ff40
[repacker] WIP extension promotion implementation.
2022-07-26 12:22:17 -06:00
Behdad Esfahbod
1945b400da
[cpluscplus] Wrap hb-subset types as well
...
Also changes signature of get_user_data of hb.h types to take const
object. This is safe.
2022-07-25 10:45:55 -06:00
Behdad Esfahbod
1ac21246a7
[hb-ft] Fix bitmap font rendering with hb_ft_font_changed()
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3754
Fixes https://github.com/harfbuzz/harfbuzz/issues/3755
2022-07-25 08:40:02 -06:00
Behdad Esfahbod
94de328011
[GSUB/GPOS] Adjust buffer message
2022-07-24 18:51:55 -06:00
Behdad Esfahbod
bc80e4b923
[GSUB/GPOS] More buffer message for contextuals
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3753
2022-07-24 18:50:14 -06:00
Behdad Esfahbod
59b05359cd
[GSUB/GPOS] Add more buffer messages
...
Behind HB_BUFFER_MESSAGE_MORE.
https://github.com/harfbuzz/harfbuzz/pull/3495
2022-07-24 18:39:30 -06:00
Behdad Esfahbod
0722b627f4
[buffer] Return delta from sync_so_far
2022-07-24 17:35:44 -06:00
Behdad Esfahbod
c55c019771
[buffer] Add assertions of buffer sync status to message_impl
2022-07-24 16:30:33 -06:00
Behdad Esfahbod
da9edce84c
[buffer] Add sync_so_far()
...
This removes separate out-buffer, at the cost of possibly changing
idx.
2022-07-24 16:30:19 -06:00
Khaled Hosny
cbccadba8d
5.0.1
2022-07-23 22:09:06 +02:00
Behdad Esfahbod
61d0c54701
[ft] Pass design, not normalized, coords to freetype
...
Needed for avar2 to work.
2022-07-23 13:26:18 -06:00
Behdad Esfahbod
473a5e5651
[font] Fix design-coords
...
Ouch!
2022-07-23 13:26:18 -06:00
Khaled Hosny
40b21edf48
5.0.0
2022-07-23 19:53:14 +02:00
Behdad Esfahbod
4cb83967aa
[subset/ClassDefFormat2] Fix timeout
...
Fixes https://oss-fuzz.com/testcase-detail/5417800474165248
2022-07-23 11:00:20 -06:00
Behdad Esfahbod
32c85b8c8c
[avar2] Fix mapping when coords length don't match
...
Ouch.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49407
2022-07-23 10:50:26 -06:00
Behdad Esfahbod
06c3ec0a19
[avar2] Minor sanitize rewrite
2022-07-23 10:45:28 -06:00
Behdad Esfahbod
f94a3ba1db
[varStore] Better protect against HB_NO_VAR builds
2022-07-23 10:36:08 -06:00
Behdad Esfahbod
17863bd16b
[config/avar2] add HB_NO_VARIATIONS2
2022-07-22 22:38:08 -06:00
Behdad Esfahbod
5a9c7930ef
Add HB_NO_BEYOND_64K
2022-07-22 21:33:31 -06:00
Behdad Esfahbod
c76fd3c5f9
[avar2] Add link to "Spec".
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
edca52c3b6
[avar2] Use a varStore cache
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
59f8afa73e
[avar2] Remove XXX item
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
d6c4f757a4
[avar2] Clamp out values
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
d0e2ad9297
[avar] Pre-alloc vector
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
2a877b554a
[avar2] First stab at mapping v2 values
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
c3eb6713e9
[avar2] Add v2 structure and sanitize
2022-07-22 15:29:57 -06:00
Behdad Esfahbod
c9e843942e
[min/max] Don't forward argument
2022-07-22 09:01:28 -06:00
Behdad Esfahbod
cb5ca6be29
[ft] Actually call check_changed() from _changed()
...
Ouch!
Fixes https://github.com/harfbuzz/harfbuzz/issues/3746
2022-07-22 05:48:27 -06:00
Behdad Esfahbod
fd535a240b
[ft] Remove check_changed from get_glyph_shape()
...
Leftover.
2022-07-22 05:48:12 -06:00
Behdad Esfahbod
7cdde6a241
[ClassDef] Write a loop as range for
2022-07-21 17:18:45 -06:00
Behdad Esfahbod
0cc2f3c218
[algs] Remove hb_pair_t()
2022-07-21 16:46:45 -06:00
Behdad Esfahbod
9eab3ac72d
[CoverageFormat2] Remove hand-written loop
...
While on a fuzzer-found test case (added) that loop was faster,
on real fonts, including NotoNastaliq in our benchmark, it was
actually slower, which intuitively I would have expected.
Still no idea why on that fuzzer case it's faster though. :(
2022-07-21 12:36:53 -06:00
Behdad Esfahbod
bbb4db90dd
[Coverage/SingleSubst] Move hand-written loop to Coverage
2022-07-21 12:34:46 -06:00
Behdad Esfahbod
7b95783efb
[Coverage] Internal rename
2022-07-21 12:18:51 -06:00
Behdad Esfahbod
afa65f2903
[Coverage] Minor type change
2022-07-21 12:17:08 -06:00
Behdad Esfahbod
b38587aa0b
[Coverage] Internal renames
2022-07-21 12:14:06 -06:00
Behdad Esfahbod
84d38df828
[Coverage] Minor use range-based loop
2022-07-21 12:12:04 -06:00
Behdad Esfahbod
b017b73ffe
[Coverage] Minor remove a couple unnecessary as_array()'s
2022-07-21 12:06:55 -06:00
Behdad Esfahbod
9e650b4e0c
[Coverage] Speedup intersect_set
2022-07-21 12:01:52 -06:00
Behdad Esfahbod
efa388074d
[subset/SingleSubsetFormat1] Use Coverage.intersect_set
2022-07-21 11:52:36 -06:00
Behdad Esfahbod
00dfbbce1c
[Coverage] Rename and templatize intersected_coverage_glyphs
2022-07-21 11:45:05 -06:00
Behdad Esfahbod
d0eb273791
[subset/GSUB/GPOS] Use more intersected_coverage_glyphs()
2022-07-21 11:24:56 -06:00
Behdad Esfahbod
450d834679
[subset/PairPosFormat1] Speed up significantly
2022-07-21 11:05:35 -06:00
Behdad Esfahbod
5d7556e184
Revert "[subst/SingleSubstFormat1] Rewrite nicer"
...
This reverts commit bababe1072
.
The hand-written code is still much faster :(.
2022-07-21 10:58:36 -06:00
Behdad Esfahbod
71ce931e6d
[PairPos] Don't compute newFormat
...
It was wrong, because it would be writing wrong values.
Test suite doesn't seem to catch any.
2022-07-21 10:41:29 -06:00
Behdad Esfahbod
02ca025443
[layout] Add large_int to Types
2022-07-21 10:30:23 -06:00
Behdad Esfahbod
bababe1072
[subst/SingleSubstFormat1] Rewrite nicer
2022-07-21 10:25:27 -06:00
Behdad Esfahbod
cf123e6a0d
[Coverage] Add get_population ()
2022-07-21 10:24:04 -06:00
Behdad Esfahbod
2ad3c0c770
Fix uninitialized variable
2022-07-21 09:46:25 -06:00
Behdad Esfahbod
fa471043fc
[subset] Fix previous commit
2022-07-20 22:42:18 -06:00
Behdad Esfahbod
c4d2ef9004
[subset] Speed up subsetting of SingleSubstFormat1_3
2022-07-20 22:36:35 -06:00
Behdad Esfahbod
d01e6babe6
[subset] Speed up SingleSubstFormat1_3 closure
2022-07-20 22:17:33 -06:00
Qunxin Liu
0f80076937
[subset] Do not repeat COLR table closure
2022-07-20 19:17:34 -06:00
Behdad Esfahbod
9fc31db6fa
[blob] Initialize members if ever on the stack
2022-07-20 16:03:02 -06:00
Behdad Esfahbod
60a9175f2c
[blob] Remove fini_shallow()
2022-07-20 15:59:46 -06:00
Behdad Esfahbod
bcd59b5142
[set/map] Remove init_shallow/fini_shallow()
2022-07-20 15:58:28 -06:00
Behdad Esfahbod
79b23cc25d
Fix another leak
2022-07-20 15:38:34 -06:00
Behdad Esfahbod
3fad942ee2
Try fix leak
2022-07-20 15:26:32 -06:00
Behdad Esfahbod
e1b5f2f806
[object] Call destructor in hb_object_destroy()
2022-07-20 15:07:55 -06:00
Behdad Esfahbod
9ea4ab6051
[object] Call constructor
2022-07-20 14:57:32 -06:00
Behdad Esfahbod
61c0438425
[map] Allow geting non-const value pointer out with has()
2022-07-20 14:43:58 -06:00
Behdad Esfahbod
00cfc5c17d
[map] Don't set out value in has() if not found
2022-07-20 14:38:28 -06:00
Behdad Esfahbod
485f043211
[map] Enable using hashmap with unique_ptr
2022-07-20 14:34:55 -06:00
Behdad Esfahbod
53fd4c9236
[set] A variable rename
2022-07-20 13:33:49 -06:00
Behdad Esfahbod
6826b2c3fd
[gsubgpos/closure] Minor condition use bool operator
2022-07-20 13:25:34 -06:00
Behdad Esfahbod
55a1e0bb11
[ot-map] Use hb_array for a return value
2022-07-20 13:15:55 -06:00
Behdad Esfahbod
8d923363db
[layout] Reduce number of closure rounds
2022-07-20 12:09:00 -06:00
Behdad Esfahbod
aae8c74e05
[>64k:layout:SingleSubstFormat3] Fix masking
...
https://github.com/be-fonts/boring-expansion-spec/issues/31
2022-07-20 11:51:27 -06:00
Behdad Esfahbod
3c137ef041
[GPOS/CursivePos] Fix unsafe-to-break marking
...
Fixes test.
2022-07-20 11:29:30 -06:00
Behdad Esfahbod
5998cd00c8
[hebrew] Break out of reordering loop when pattern found
2022-07-20 11:16:32 -06:00
Behdad Esfahbod
d861303797
[hebrew] Comment
2022-07-20 10:57:12 -06:00
Behdad Esfahbod
c60d810d50
[hebrew] Implement Jerusalem mark reordering
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2947
2022-07-20 10:25:31 -06:00
Khaled Hosny
605bb1ee3d
[subset] Add amalgam harfbuzz-subset.cc
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3733
2022-07-19 17:15:35 -06:00
Qunxin Liu
712bfa8872
build fix for HB_NO_VAR
2022-07-19 15:16:37 -06:00
Behdad Esfahbod
798a0c8a58
Fix build
2022-07-19 14:40:47 -06:00
Behdad Esfahbod
8737dea4d9
[>64k:layout:GDEF] Implement version 2
...
Implements https://github.com/be-fonts/boring-expansion-spec/issues/36
Subset does NOT lower format.
2022-07-19 14:39:47 -06:00
Behdad Esfahbod
8080e01afc
[>64k:layout] Templatize GDEFVersion1
2022-07-19 14:35:58 -06:00
Behdad Esfahbod
1665cf6bc4
[>64k:layout] Split GDEFVersion1
...
https://github.com/be-fonts/boring-expansion-spec/issues/36
2022-07-19 14:21:48 -06:00
Behdad Esfahbod
1de5591cf7
[>64k:layout] Prepare GDEF for templatizing
...
https://github.com/be-fonts/boring-expansion-spec/issues/36
2022-07-19 14:21:48 -06:00
Khaled Hosny
c0d60bd496
[meta] Fix warning with emscripten
...
For whatever reason, em++ takes the first branch and spouts a gazillion
warnings like:
./harfbuzz/src/hb-vector.hh:229:20: warning: builtin __has_trivial_assign is deprecated; use __is_trivially_assignable instead [-Wdeprecated-builtins]
hb_enable_if (hb_is_trivially_copy_assignable(T))>
^
./harfbuzz/src/hb-meta.hh:193:44: note: expanded from macro 'hb_is_trivially_copy_assignable'
2022-07-19 11:33:54 -06:00
Behdad Esfahbod
91c60802e6
[open-type] Fix overflow check
...
Without the cast, the compiler is within its rights to reason that
overflow didn't happen and optimize away the check, as clang was.
2022-07-18 22:24:28 -06:00
Behdad Esfahbod
4279304a62
[stat] Fix double-promotion warnings
2022-07-18 22:20:06 -06:00
Behdad Esfahbod
54e9ab4a91
[GPOS/Cursive] Fix breaking of parent-child attachment
...
Mostly fixes https://github.com/harfbuzz/harfbuzz/issues/2469
2022-07-18 18:57:14 -06:00
Behdad Esfahbod
c2baf2796c
[arabic] Make more features F_MANUAL_ZWJ
...
The change to `ccmp` fixes shaping of certain sequences with
Calibri on Windows 11. Addition of `liga` and `clig` is
speculative.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3530
2022-07-18 15:41:20 -06:00
Behdad Esfahbod
ddeef8c875
[test-ot-glyphname] Fix return value
2022-07-18 15:13:47 -06:00
Qunxin Liu
be8e8e8c80
[instance] prune name tables after axes pinned at fixed locations
...
Restricting axes to ranges is not supported yet.
2022-07-18 14:59:07 -06:00
Qunxin Liu
df55f840cb
[instance] instantiate STAT table when axes are pinned at fixed locations
...
restricting ranges is not supported yet.
2022-07-18 14:59:07 -06:00
Qunxin Liu
2a4773e43d
add option "--instance", store axes_location in subset_plan and drop all
...
variation tables when all axes are pinned at default
2022-07-18 14:59:07 -06:00
Behdad Esfahbod
5744e951fc
[gir] Skip graphite API
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2557
2022-07-18 14:54:44 -06:00
Behdad Esfahbod
3723b8544b
[cff] Better max op counting
2022-07-18 14:00:14 -06:00
Behdad Esfahbod
3c84aa8416
[cff] Add a max work counter
...
Set to 10,000 per interpretation right now.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3700
Fixes https://oss-fuzz.com/testcase-detail/5667125715927040
2022-07-18 13:57:59 -06:00
Behdad Esfahbod
89de8c700f
[CoverageFormat2] Another fix for broken tables
...
Fixes https://oss-fuzz.com/testcase-detail/6005342714068992
2022-07-18 13:07:29 -06:00
Behdad Esfahbod
4f22397f05
[ft] A couple of introspection fixes
2022-07-18 11:03:54 -06:00
Behdad Esfahbod
f7f6d278bb
Add hb_language_matches()
...
New API:
+ hb_language_matches()
2022-07-17 22:15:42 -06:00
Behdad Esfahbod
d57ce30054
[ot-shape] Pass reference to props instead of pointer
...
Since cannot be nullptr.
2022-07-17 21:56:56 -06:00
Behdad Esfahbod
a972d05d7e
[aat] Fix build
2022-07-17 21:42:04 -06:00
Behdad Esfahbod
2124ad8906
[aat/morx] Implement language-specific forms
...
Test on Mac with, eg.
$ hb-view /Library/Fonts/BigCaslon.ttf -u 107
vs
$ hb-view /Library/Fonts/BigCaslon.ttf -u 107 --language pl
Fixes https://github.com/harfbuzz/harfbuzz/issues/1373
2022-07-17 21:32:27 -06:00
Behdad Esfahbod
d8574b44cc
[CoverageFormat2] Fix iterator to avoid infinite loop
...
on invalid data.
Fixes https://oss-fuzz.com/testcase-detail/5304497047470080
2022-07-17 18:44:27 -06:00
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