src/OT/Layout


Log

Author Commit Date CI Message
Behdad Esfahbod 0fe90ebc 2023-05-03T12:49:31 [Ligature] Micro-optimize
Behdad Esfahbod 51061d28 2023-05-03T12:46:04 [Ligature] Minor tweak to recent code
Behdad Esfahbod 7881eadf 2023-05-02T14:56:18 [Ligature] Speed up Match the first component of the ligature in the LigatureSet loop. Speeds up Roboto shaping by 25%. I don't think it breaks anything. The test suite seems happy.
Behdad Esfahbod 95f15557 2023-05-02T16:37:31 [PairPosFormat2] Micro-optimize and don't kern if class2=0 If class2=0 we expect no kerning to happen. Just bail out.
Behdad Esfahbod 59967154 2023-05-02T15:52:43 [PairPos2] Micro-optimize
Behdad Esfahbod a8b8eb53 2023-05-01T16:56:29 [Coverage] Micro-optimize
Behdad Esfahbod af21ea35 2023-05-01T16:34:50 [Coverage/serialize] Micro-optimize
Behdad Esfahbod e826d94a 2023-04-30T11:11:19 Call roundf() instead of _hb_roundf() The former is defined as a macro expanding to the latter.
Behdad Esfahbod 06504cb0 2023-04-28T13:13:18 [PairPosFormat2] Minor use false instead of 0
Behdad Esfahbod 9ed43dc5 2023-04-28T12:38:26 [PairPosFormat2] Reuse a value
Garret Rieger 8658c257 2023-04-17T19:46:46 [subset] In LigatureSubst subsetting, check if the ligature glyph is in glyphset. Otherwise coverage will not match the retained ligature sets.
Garret Rieger a84cae42 2023-03-15T02:39:57 [subset] Don't add invalid gids (-1) to the glyphset when loading glyph map from the accelerator.
Behdad Esfahbod 7327006d 2023-03-07T21:06:01 [GSUB] Support SingleSubst in get_glyph_alternates Fixes https://github.com/harfbuzz/harfbuzz/discussions/4146
Behdad Esfahbod 08784baf 2023-03-02T10:48:30 [GSUB/GPOS] Fix sanitization in Format1 Fixes https://oss-fuzz.com/testcase-detail/5120727025319936
Behdad Esfahbod c67c0086 2023-03-01T13:32:44 [GPOS] Fix indexing in MarkLigPos This was broken in 8708b9e081. Fixes https://github.com/harfbuzz/harfbuzz/issues/4142
Garret Rieger 918193eb 2023-02-22T23:11:29 [subset] fix a class of fuzzer timeouts caused by large shared coverage tables. More acurately estimates the op count for CoverageFormat2 tables as the population size instead of the size in bytes.
Behdad Esfahbod adccc535 2023-02-17T12:29:42 [MarkBase] Adjust base-finding logic Fixes https://github.com/harfbuzz/harfbuzz/issues/4124
Behdad Esfahbod 64fa5cd4 2023-02-07T15:50:36 [GPOS] Fix assert fail introduced recently Was introduced in 8708b9e081192786c027bb7f5f23d76dbe5c19e8. If these lookups are recursed to from (Chain)Context out-of-order, it was possible that last_base > buffer->idx, in which case we were attaching marks to a base after them... and an assertion was failing fortunately. Fixes https://oss-fuzz.com/testcase-detail/6377756666757120
Behdad Esfahbod 8708b9e0 2023-02-06T14:51:25 [GPOS] Avoid O(n^2) behavior in mark-attachment Better implementation; avoids arbitrary limit on look-back.
Matthias Clasen 09b7fce8 2023-01-28T13:21:27 Make includes relative
Matthias Clasen e25e4c9a 2023-01-28T00:10:47 Move GDEF table to src/OT/Layout/GDEF
Behdad Esfahbod 749df4ee 2023-01-21T16:00:54 [PairPosFormat1] One more
Behdad Esfahbod b648ceb7 2023-01-21T15:58:59 [PairSet] Optimize last commit
Behdad Esfahbod 89162324 2023-01-21T15:57:18 [PairSet] Unify get_size()
Behdad Esfahbod b63159e8 2023-01-21T15:50:48 [PairPosFormat1] Fix stride Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=55287 and generally the lookup with MediumTypes.
Behdad Esfahbod be8a87c4 2023-01-21T15:00:41 Move TRACE_DISPATCH after may_recurse() Such that we don't get memory access issues if DEBUG_SANITIZE is on and may_recurse() returns false.
Behdad Esfahbod ed023f66 2023-01-12T17:04:24 Enable -Wformat-signedness And fix the codebase.
Behdad Esfahbod b33eb9ec 2023-01-11T11:20:04 [subset-plan] Simplify layout_variation_idx_delta_map allocation
Behdad Esfahbod 0728098e 2023-01-10T10:18:29 [Coverage] Speed up subset for too-large Coverage tables Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54980
Behdad Esfahbod 301f6e4b 2022-12-04T11:46:10 [Coverage] Remove TODO
Behdad Esfahbod dbbb8e80 2022-12-04T11:13:39 Revert "[map] Add hb_map_filter_invalid" This reverts commit 8d7e92111786b21906157127c24b72b1e444e6e7. Surprisingly this slowed NotoNastaliqUrdu benchmark down by a couple percent instead of speeding it up.
Behdad Esfahbod 8d7e9211 2022-12-04T11:01:45 [map] Add hb_map_filter_invalid Use it in one place.
Behdad Esfahbod 41a8597f 2022-12-03T13:23:26 [layout] Simplify CoverageFormat2 intersects_coverage()
Behdad Esfahbod 1f4d8cca 2022-12-03T13:17:15 [CoverageFormat2] Optimize intersects()
Behdad Esfahbod c482b061 2022-12-03T13:14:31 [gpos] Optimize PairPosFormat1::intersects
Behdad Esfahbod 4d19c724 2022-12-03T09:57:29 [CoverageFormat1] Speed up intersects() Speeds up SourceHanSerif/10000 benchmark (not in test suite) by 32%!
Behdad Esfahbod 2a7a1d5a 2022-12-02T12:33:24 [Coverage] Avoid timeout on broken ranges Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53929
Behdad Esfahbod 72fabef0 2022-11-30T11:37:49 [SingleSubstFormat2] Speed up closure
Behdad Esfahbod d2a2670e 2022-11-28T19:42:27 [iter] Simplify has() interface implementations
Behdad Esfahbod 3e151139 2022-11-28T14:23:49 [PairPos] Optimize get_effective_value_format Speeds up BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/nohinting/512 12%.
Behdad Esfahbod 26ad7a60 2022-11-28T14:09:21 [gpos] Minor micro-optimize
Behdad Esfahbod c769d7e1 2022-11-28T14:03:58 [gpos] Whitespace
Behdad Esfahbod e3cc6183 2022-11-26T13:58:04 [PairPos] Adjust kerning buffer messages
Behdad Esfahbod 6aaa1662 2022-11-24T14:58:42 [Coverage] Comment
Behdad Esfahbod 05aa084e 2022-11-24T12:13:31 [PairPos] Another attempt at fixing unsafe-to-break with ValueFormat2 Fixes https://github.com/harfbuzz/harfbuzz/issues/3888#issuecomment-1326781116 Test: $ hb-shape XBRoya34.ttf ' الأ' --show-flags --script=arab
Behdad Esfahbod 58a696d8 2022-11-22T12:56:05 More hb_memset
Behdad Esfahbod a0bde1e1 2022-11-16T21:27:12 [open-type] Remove (Sorted)ArrayOf.sub_array()
Behdad Esfahbod ea63e95e 2022-11-11T12:45:12 [GPOS.PairPos] Adjust unsafe-to-break for non-zero ValueFormat2 Fixes https://github.com/harfbuzz/harfbuzz/issues/3824
Behdad Esfahbod fc935fb8 2022-11-01T14:39:33 Fix snprintf use https://github.com/harfbuzz/harfbuzz/pull/3495#issuecomment-1299107964
Behdad Esfahbod 02b76393 2022-10-29T11:15:03 [config] Re-enable BORING_EXPANSION Only the non-experimental parts (currently avar2) are enabled by default.
Behdad Esfahbod 9aad3dba 2022-10-26T13:04:02 [SingleSubst] Fix degenerate-lookup test Part of https://github.com/harfbuzz/harfbuzz/issues/3853
Behdad Esfahbod 294b1c9f 2022-10-13T11:30:02 Use snprintf instead of sprintf
Qunxin Liu 8f3a7017 2022-09-09T15:00:37 [instance] support FeatureVariations table
Behdad Esfahbod 4bf96211 2022-08-31T09:18:18 [optical-bounds] Optimize
Behdad Esfahbod 5d6f1a88 2022-08-31T08:31:24 [layout] Add hb_ot_layout_get_optical_bound()
Qunxin Liu 6de0a6f0 2022-08-03T11:18:00 [instance] update GPOS ValueRecord table
Qunxin Liu 61636d4e 2022-08-02T10:52:31 [instance] update GPOS AnchorFormat3 table
Qunxin Liu b72995ff 2022-08-01T14:48:01 [instance] GDEF table: collect both varidxes and deltas
Garret Rieger 5ea3c0be 2022-08-11T22:21:28 [repacker] Implement MarkArray::clone.
Behdad Esfahbod f4f7d691 2022-08-09T22:23:23 Merge pull request #3779 from harfbuzz/split_pair_pos_2 [repacker] Add PairPosFormat2 table splitting in the repacker.
Behdad Esfahbod a4e0fd16 2022-08-05T15:05:51 [MultipleSubst] Rewrite serialize signature as single iterator
Behdad Esfahbod 65d28bc5 2022-08-05T14:56:07 [MultipleSubst] Rewrite serialize() in terms of iterators Unused still, and hence untested
Behdad Esfahbod b57ea3b0 2022-08-05T14:29:27 Revert "[iter] Use && in uses of is_source_of" This reverts commit ccbba667a9bdc096f0053d5e3ee951a8b6298e8a.
Behdad Esfahbod ccbba667 2022-08-05T11:51:51 [iter] Use && in uses of is_source_of
Behdad Esfahbod 8fb7cc1c 2022-08-05T11:49:29 [iter] Use && in is_sink_of uses
Behdad Esfahbod 914542bd 2022-08-03T17:43:50 Whitespace
Garret Rieger 7f4b2037 2022-08-02T18:43:25 [repacker] include size of device tables when determining PairPos2 split points.
Garret Rieger 58fdbd8e 2022-07-30T02:05:15 [repacker] begin adding PairPosFormat2 splitting support.
Behdad Esfahbod 6549aec8 2022-08-01T13:11:14 [SingleSubstFormat1] Help avoid timeouts in closure() some more For https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49712
Garret Rieger f6a242b6 2022-07-27T18:58:41 [repacker] begin adding PairPos splitting support.
Behdad Esfahbod 149b0305 2022-07-29T12:41:30 Fix thinko
Behdad Esfahbod f7677213 2022-07-29T11:57:57 [SingleSubstFormat1] Don't close glyphs in degenerate cases Fixes https://oss-fuzz.com/testcase-detail/5145429829877760
Behdad Esfahbod e2cc34e1 2022-07-26T12:31:15 [subset/GPOS] Fix a fuzzer timeout test Fixes https://oss-fuzz.com/testcase-detail/5234369031176192
Behdad Esfahbod 59b05359 2022-07-24T17:14:09 [GSUB/GPOS] Add more buffer messages Behind HB_BUFFER_MESSAGE_MORE. https://github.com/harfbuzz/harfbuzz/pull/3495
Behdad Esfahbod 9eab3ac7 2022-07-21T12:35:19 [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. :(
Behdad Esfahbod bbb4db90 2022-07-21T12:34:46 [Coverage/SingleSubst] Move hand-written loop to Coverage
Behdad Esfahbod 7b95783e 2022-07-21T12:18:51 [Coverage] Internal rename
Behdad Esfahbod afa65f29 2022-07-21T12:17:08 [Coverage] Minor type change
Behdad Esfahbod b38587aa 2022-07-21T12:14:06 [Coverage] Internal renames
Behdad Esfahbod 84d38df8 2022-07-21T12:12:04 [Coverage] Minor use range-based loop
Behdad Esfahbod b017b73f 2022-07-21T12:06:55 [Coverage] Minor remove a couple unnecessary as_array()'s
Behdad Esfahbod 9e650b4e 2022-07-21T12:01:52 [Coverage] Speedup intersect_set
Behdad Esfahbod efa38807 2022-07-21T11:52:36 [subset/SingleSubsetFormat1] Use Coverage.intersect_set
Behdad Esfahbod 00dfbbce 2022-07-21T11:39:32 [Coverage] Rename and templatize intersected_coverage_glyphs
Behdad Esfahbod d0eb2737 2022-07-21T11:24:56 [subset/GSUB/GPOS] Use more intersected_coverage_glyphs()
Behdad Esfahbod 450d8346 2022-07-21T11:05:35 [subset/PairPosFormat1] Speed up significantly
Behdad Esfahbod 5d7556e1 2022-07-21T10:42:29 Revert "[subst/SingleSubstFormat1] Rewrite nicer" This reverts commit bababe10724c27b2cbb09bf25e7dcf4aeea07588. The hand-written code is still much faster :(.
Behdad Esfahbod 71ce931e 2022-07-21T10:41:29 [PairPos] Don't compute newFormat It was wrong, because it would be writing wrong values. Test suite doesn't seem to catch any.
Behdad Esfahbod 02ca0254 2022-07-21T10:30:23 [layout] Add large_int to Types
Behdad Esfahbod bababe10 2022-07-21T10:25:27 [subst/SingleSubstFormat1] Rewrite nicer
Behdad Esfahbod cf123e6a 2022-07-21T10:21:57 [Coverage] Add get_population ()
Behdad Esfahbod fa471043 2022-07-20T22:42:18 [subset] Fix previous commit
Behdad Esfahbod c4d2ef90 2022-07-20T22:36:35 [subset] Speed up subsetting of SingleSubstFormat1_3
Behdad Esfahbod d01e6bab 2022-07-20T22:17:33 [subset] Speed up SingleSubstFormat1_3 closure
Behdad Esfahbod aae8c74e 2022-07-20T11:51:09 [>64k:layout:SingleSubstFormat3] Fix masking https://github.com/be-fonts/boring-expansion-spec/issues/31
Behdad Esfahbod 3c137ef0 2022-07-20T11:29:30 [GPOS/CursivePos] Fix unsafe-to-break marking Fixes test.
Behdad Esfahbod 54e9ab4a 2022-07-18T18:57:14 [GPOS/Cursive] Fix breaking of parent-child attachment Mostly fixes https://github.com/harfbuzz/harfbuzz/issues/2469
Behdad Esfahbod 89de8c70 2022-07-18T13:07:29 [CoverageFormat2] Another fix for broken tables Fixes https://oss-fuzz.com/testcase-detail/6005342714068992
Behdad Esfahbod d8574b44 2022-07-17T18:44:27 [CoverageFormat2] Fix iterator to avoid infinite loop on invalid data. Fixes https://oss-fuzz.com/testcase-detail/5304497047470080
Behdad Esfahbod af84680f 2022-07-17T12:00:04 [GSUB] Remove a reinterpret_cast