|
7a4bd97e
|
2023-01-31T14:59:39
|
|
[layout] Build lookup accelerators lazily on-demand
Reduces memory consumption for large multi-script fonts
drastically.
|
|
83353f13
|
2023-01-31T14:32:14
|
|
[layout] Reduce memory use slightly
By using raw pointer instead of vector for subtable accelerator.
To be used for more memory saving by making subtable accelerators
lazy-loaded by shape-plans for large fonts.
|
|
950c7ab3
|
2023-01-26T15:26:05
|
|
[gsubgpos] Use accelerator when recursing
|
|
3238cb74
|
2022-07-06T13:18:14
|
|
[GPOS] Fix build on GCC < 7
|
|
900476c6
|
2022-06-30T19:21:23
|
|
Move GSUB.hh GPOS.hh back into the GPOS/GSUB sub directories.
|
|
050f1690
|
2022-06-28T18:52:27
|
|
[GPOS/kerx] Call into impl namespace from kerx
|
|
3fbf2dec
|
2022-06-28T23:55:32
|
|
[reorg] Move OT::Layout::GPOS_impl::GPOS to OT::Layout::GPOS.
|
|
88ef3c5a
|
2022-06-28T23:26:49
|
|
[reorg] Change OT::Layout::GPOS to OT::Layout::GPOS_impl.
|
|
49ddf069
|
2022-06-28T23:15:07
|
|
[reorg] Move GPOS reverse_cursive_minor_offset implementation into new directory layout.
|
|
74f45f7c
|
2022-06-24T23:14:30
|
|
[reorg] Move remaining GPOS lookup types to new directory.
|
|
197d9a5c
|
2022-06-24T22:36:14
|
|
[reorg] Move more GPOS lookups to new directory.
|
|
c7307ca0
|
2022-06-24T22:01:02
|
|
[reorg] Begin moving GPOS into the new directory layout.
|
|
d15260ca
|
2022-06-25T19:53:11
|
|
[gpos] Limit recursion depth in propagate_attachment_offsets()
Fixes https://github.com/harfbuzz/harfbuzz/issues/2927
|
|
9fc9b1ec
|
2022-06-08T12:35:43
|
|
[layout] Minor, add using Lookup to GSUB/GPOS
|
|
4119f73c
|
2022-06-08T06:34:48
|
|
[subset/layout] Rename dispatch_closure_lookups_recurse_func to dispatch_recurse_func<>
|
|
c13ff395
|
2022-06-08T06:25:23
|
|
[layout] Rename apply_recurse_func to specialization of dispatch_recurse_func
|
|
880f50f7
|
2022-05-20T16:50:00
|
|
Refactor varstore cache
|
|
f2a2fb91
|
2022-05-20T16:06:05
|
|
[GPOS] Cache VarStore region scalars
|
|
88798ee8
|
2022-02-04T18:59:50
|
|
[GPOS] Disable split-kerning
Fixes https://github.com/harfbuzz/harfbuzz/issues/3408
Reverts https://github.com/harfbuzz/harfbuzz/pull/3235
Fixes https://github.com/harfbuzz/harfbuzz/pull/3235#issuecomment-1029814978
|
|
8663eda4
|
2022-01-22T10:35:05
|
|
[unsafe-to-concat] More annotations for MarkMarkPos
Failures down to one:
265/401 harfbuzz:shaping+aots / lookupflag_ignore_attach FAIL
|
|
6a7d6d4b
|
2022-01-22T10:33:35
|
|
[unsafe-to-concat] More annotations for MarkLigaturePos
|
|
b443898c
|
2022-01-22T10:24:59
|
|
[unsafe-to-concat] Adjust MarkBasePos
A couple more aots tests down. Four failing:
209/401 harfbuzz:shaping+aots / gpos6 FAIL 0.06s exit status 1
261/401 harfbuzz:shaping+aots / gsub4_1_multiple_ligatures FAIL 0.07s exit status 1
265/401 harfbuzz:shaping+aots / lookupflag_ignore_attach FAIL 0.07s exit status 1
267/401 harfbuzz:shaping+aots / lookupflag_ignore_combination FAIL 0.07s exit status 1
|
|
95d052a7
|
2022-01-22T10:16:23
|
|
[unsafe-to-concat] Adjust GPOS lookbacks
Fixes Cursive aots test, fails a couple new aots ones.
|
|
11bdd7a0
|
2022-01-21T18:59:06
|
|
[unsafe-to-concat] Adjust CursivePos
Doesn't fix the test yet.
|
|
48c5f261
|
2022-01-21T12:18:50
|
|
[unsafe-to-concat] Fix PairPos2 logic
Test failures down from 8 to 6:
113/400 harfbuzz:shaping+in-house / mongolian-variation-selector FAIL 0.06s exit status 1
203/400 harfbuzz:shaping+aots / gpos3 FAIL 0.06s exit status 1
204/400 harfbuzz:shaping+aots / gpos4_lookupflag FAIL 0.06s exit status 1
260/400 harfbuzz:shaping+aots / gsub4_1_multiple_ligatures FAIL 0.06s exit status 1
264/400 harfbuzz:shaping+aots / lookupflag_ignore_attach FAIL 0.06s exit status 1
266/400 harfbuzz:shaping+aots / lookupflag_ignore_combination FAIL 0.06s exit status 1
|
|
78481b32
|
2021-11-21T16:50:34
|
|
[gsubgpos] Combine input/backtrack/lookahead unsafe-to-concat
I feel like this is correct logic. Still have to prove.
Errors unchanged at 10.
|
|
596bc7e9
|
2021-11-20T12:02:47
|
|
[unsafe-to-concat] Add to GPOS kerning
|
|
e1cbd453
|
2021-11-20T11:46:48
|
|
[unsafe-to-concat] Add annotations to GPOS and kern
Failures from 13 to 14.
|
|
cce37a6f
|
2022-01-21T07:31:21
|
|
[gpos] Fix conditional
|
|
84aa1a83
|
2022-01-20T13:18:19
|
|
[PairPos] Split GPOS kerning to both sides (#3235)
|
|
ac1bb3e3
|
2022-01-20T11:47:17
|
|
[machinery] Move accelerators to constructor/destructor
|
|
7e160dc3
|
2022-01-19T09:26:53
|
|
[gpos] Fix unsafe-to-break of mark-attachment
This was undetected because most of the time marks were in same
cluster of their base already.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3093
|
|
ff697deb
|
2021-12-19T07:25:37
|
|
[GPOS] Apply font synthetic slant
Part of fixing https://github.com/harfbuzz/harfbuzz/issues/3196
|
|
ef14cad7
|
2021-12-08T10:43:52
|
|
[GPOS] Disable vertical advance if HB_NO_VERTICAL
|
|
6d555ce8
|
2021-11-02T00:18:22
|
|
[meta] Use std::forward instead of hb_forward()
|
|
96299d70
|
2021-10-12T10:42:43
|
|
Fix Wbitwise-instead-of-logical warnings
`a || b` only evaluates b if a is false. `a | b` always evaluates
both a and b. If a and b are of type bool, || is usually what you
want, so clang now warns on `|` where both arguments are of type bool.
This warning fires twice in harfbuzz. In both cases, `|` is used
intentionally, with a comment explaining this.
Slightly reorder the code a bit to make the compiler happy, and to
make it obvious even without a comment that both calls should be evaluated.
No intended behavior change.
|
|
c2cc566c
|
2021-09-22T14:15:55
|
|
[subset] Fix subset_offset_array adding unused space to serializer.
ArrayOf.serialize_append allocates space for the new item, but ArrayOf.pop() does not recover the allocated space. So in the case where the revert path was entered the extra space added by serialize_append gets left in the serialization buffer. This moves the snapshot to before ArrayOf.serialize_append is called so that revert cleans up the buffer extend.
|
|
c852b868
|
2021-09-19T16:30:12
|
|
Rename HBGlyphID to HBGlyphID16
|
|
46d4a5e6
|
2021-07-29T15:07:13
|
|
[subset] Convert subset plan to use a flags bit set.
|
|
f0a1892f
|
2021-07-28T17:36:22
|
|
[serialize] Remove unnecessary pointer indirection
|
|
bb48bf52
|
2021-07-08T10:53:45
|
|
Rename misc uses of "free"
In preparation for fixing https://github.com/harfbuzz/harfbuzz/issues/3044
|
|
8443cc85
|
2021-06-11T13:40:39
|
|
[subset] Correct OffsetTo serialization in GPOS to use serialize_serialize ().
|
|
e25efb31
|
2021-04-23T19:09:37
|
|
[subset] consider all value formats when computing effective format.
|
|
84dbfacf
|
2021-04-15T16:52:11
|
|
[subset] fix collect_variation_idx in PairPosFormat2
|
|
d356d0f7
|
2021-04-23T17:41:09
|
|
[subset] optimize ValueRecord's for PairPosFormat1.
|
|
f9fbe481
|
2021-04-23T17:06:06
|
|
[subset] implement value record optimization for PairPosFormat2.
|
|
badb8e40
|
2021-04-23T16:32:56
|
|
[subset] use copy_values for PairPos serialize.
|
|
2f50283c
|
2021-04-23T15:21:30
|
|
[subset] Begin implementing ValueRecord optimization:
remove value records which have a zero value.
|
|
5df7c668
|
2021-04-22T16:45:14
|
|
[subset] In SinglePosFormat1 serialize only 1 value record.
Previously one record per glyph in the subset was serialized.
|
|
92757f68
|
2021-04-22T15:18:35
|
|
[subset] Don't drop anchor device tables when dropping hints. These may contain variation data.
Update subseting expected files to match latest version of fontTools.
|
|
9dc9f038
|
2021-04-08T11:00:17
|
|
[subset] fix for fuzzer testcase: https://oss-fuzz.com/testcase-detail/5858518134554624
|
|
553ffaf6
|
2021-04-07T17:15:32
|
|
[subset] fix for fuzzer testcase: https://oss-fuzz.com/testcase-detail/6382598554255360
avoid writing to null pointer
|
|
6f98a8ed
|
2021-04-02T14:37:10
|
|
[subset] Anchor should only use format 1 when hints are dropped.
Refactor Anchor to have a subset method instead of copy. This also allows
use to use serialize_subset in several places which simplifies calculating
offset bases.
|
|
5639e253
|
2021-03-31T16:04:43
|
|
Add Array16Of<>
|
|
5efe3609
|
2021-03-31T15:33:22
|
|
Rename (Unsized)OffsetListOf
|
|
6c4e0491
|
2021-03-31T15:31:32
|
|
s/OffsetArrayOf/Array16OfOffset16To/g
|
|
ad28f973
|
2021-03-31T12:49:14
|
|
Rename offset types to be explicit about their size
Add Offset16To<>, Offset24To<>, and Offset32To<> for most use-cases.
|
|
b14475d2
|
2021-03-18T10:51:26
|
|
[subset] further changes to serializer error handling.
- Rename enum type and enum members.
- in_errors() now returns true for any error having been set. hb-subset now looks for offset overflow only errors to divert to repacker.
- Added INT_OVERFLOW and ARRAY_OVERFLOW enum values.
|
|
73ed59f7
|
2021-03-17T15:53:10
|
|
[subset] store errors in the serializer as a flag set.
Make check_assign/check_equal specify the type of error to set.
|
|
56ca4357
|
2021-01-28T15:21:26
|
|
[subset] fix for collect_features and remove_redundant_lamngsys
previously remove_redundant_sys () is missing in harfbuzz, after
redundant langsys removal, some features are removed as well in
prune_features() in fonttools. This change is trying to get the same
result between harfbuzz and fonttools.
|
|
2df39bca
|
2021-03-16T14:20:49
|
|
[subset] don't allocate a set to use as a glyph filter for PairPosFormat2.
|
|
bb54e104
|
2021-03-16T13:19:26
|
|
[subset] Also filter class1 by coverage when collecting variation indices for PairPosFormat2.
|
|
190b7a98
|
2020-10-08T14:44:54
|
|
[subset] Update PairPosFormat2 subsetting to match fontTools updated subsetting (https://github.com/fonttools/fonttools/pull/2221)
- subset class def 1 against the coverage table.
- Don't re-use class 0 in class def 2.
- Ignore class 0 glyphs for the purposes of determing format 1 vs format 2 encoding for ClassDef.
Add an additional test case which demonstrates these issues.
|
|
103ed7da
|
2021-02-19T16:48:30
|
|
[subset] Use dagger
Better fix for https://github.com/harfbuzz/harfbuzz/pull/2858
|
|
5ca353a2
|
2021-02-12T15:16:59
|
|
[subset] fix heap buffer overflow found by fuzzer.
|
|
c7d232ce
|
2021-02-10T18:13:38
|
|
Merge pull request #2701 from googlefonts/Mark-To-Ligature_grieger
[subset] GPOS 5 MarkToLigature subsetting support
|
|
1d9801e0
|
2020-10-05T14:41:55
|
|
[subset] In AnchorMatrix::subset eliminate the use of dynamically allocated vector.
|
|
093909b2
|
2020-10-05T13:14:53
|
|
[subset] Fix wrong offset base for subsetting LigatureArray.
Offsets from LigatureArray must be relative to the beginning of the LigatureArray table. For the serialization mechanism to use the correct beginning point the LigatureArray must be created using the push()/pop() mechanism. So convert LigatureArray subsetting to use serialize_subset() instead of a manually called serialize and subset.
|
|
147e93b9
|
2020-10-01T16:44:16
|
|
[subset] Fixes to get GPOS 5 subsetting code compiling.
|
|
3a0b05fa
|
2020-02-06T15:08:26
|
|
[subset] GPOS 5 MarkToLigature subsetting support
|
|
e5835053
|
2020-09-29T11:05:08
|
|
[subset] Use plan->glyphset_gsub instead of plan->glyphset for GSUB/GPOS
This matches fontTools behaviour. glyphset_gsub does not contain gids added from closing over composite glyphs in glyf, since these cannot particpate in GSUB/GPOS processing.
|
|
fce64a40
|
2020-08-08T14:04:54
|
|
Minor
|
|
5a7cc7fd
|
2020-07-29T08:33:32
|
|
minor spacing tweak
|
|
d0e2addd
|
2020-07-18T22:14:52
|
|
minor
|
|
9ef9ac37
|
2020-06-17T17:41:15
|
|
[gpos] Break cycle-of-2 when cursive attaching
Fix thinko this time around.
Fixes https://github.com/harfbuzz/harfbuzz/issues/2469
|
|
3fe71957
|
2020-06-17T17:51:08
|
|
Revert "[gpos] Break cycle-of-2 when cursive attaching"
This reverts commit 7090707de67e660ae626ecf774f6af8a63a692ab.
|
|
7090707d
|
2020-06-17T17:41:15
|
|
[gpos] Break cycle-of-2 when cursive attaching
Fixes https://github.com/harfbuzz/harfbuzz/issues/2469
|
|
973c47f6
|
2020-06-11T11:27:57
|
|
[subset] Move 2 experimental public api methods to be private methods in GSUB/GPOS.
2 methods are: hb_ot_layout_closure_lookups and hb_ot_layout_closure_features
|
|
56719474
|
2020-06-05T12:57:23
|
|
s/blacklist/blocklist/g
|
|
d7c012a0
|
2020-02-26T13:11:42
|
|
[subset] GDEF Variation Store: step 2
do subset based on variation indices collected in step 1
|
|
8200e48f
|
2020-02-26T13:11:42
|
|
[subset] GDEF Variation Store: step 1
closure device variation indexes, create old->new variation idx mapping
and store them in subset-plan
|
|
5cf53c06
|
2020-04-23T10:55:41
|
|
Rename add_coverage to collect_coverage
|
|
2dda6dd7
|
2020-04-20T14:12:45
|
|
minor, tweak spacing
turn 8 spaces to tab, add space before Null/Crap
|
|
c8cc1e37
|
2020-04-02T16:57:01
|
|
fix issues in ClassDefFormat1 serialize:
glyph ids in Iterator may be non-consecutive,
so the number in classValue might be larger than length of the Iterator
|
|
2f556c38
|
2020-03-13T12:21:10
|
|
[subset] Fix crash when serializer runs out of room during gpos subsetting.
|
|
07acd1a0
|
2020-03-08T23:39:24
|
|
[subset] Rename src_base args to base to match sanitize methods
So it will become easier to follow that serialize methods signatures should
match with their sanitize methods counterparts.
|
|
188a0a47
|
2020-03-07T11:02:36
|
|
removed default base; replaced w/ bias if required
|
|
eb7849a8
|
2020-02-05T15:29:03
|
|
[subset] GPOS6 MarkToMark subsetting support
|
|
82afc758
|
2020-02-04T13:24:37
|
|
[subset] GPOS4 MarkBase subsetting support
|
|
1ab3924b
|
2020-01-22T11:20:56
|
|
refix PR #2087 subset PairPos1
also added oss-fuzz 20211 data fixed by this
|
|
72cbfb90
|
2020-01-18T16:35:52
|
|
remove empty lookup subtables
Added a variant of subset_offset_array which takes an extra arg passed to serialize_subset for this impl.
Added a new api test "test-subset-gpos" for this.
|
|
c828d7bf
|
2020-01-15T15:32:44
|
|
[subset] fixed GPOS device table sanitize & serialize (#2087)
|
|
e565d1f9
|
2019-11-01T10:21:36
|
|
[subset] subset lookup/feature/script lists for GSUB/GPOS
|
|
0b39c480
|
2019-10-22T16:00:43
|
|
[subset] closure lookups for GSUB/GPOS
|
|
a061e47f
|
2019-12-10T13:31:50
|
|
Change a few HB_INTERNAL static methods to static inline
|
|
dd3972a3
|
2019-12-10T13:21:26
|
|
[GSUB] Simplify Extension is_reverse()
We don't allow extension lookups to chain to another extension lookup.
Simplify code for that.
|
|
858b6279
|
2019-12-10T13:18:32
|
|
[machinery] Remove CastR<>()
|
|
b84ceb2f
|
2019-12-10T13:02:48
|
|
[machinery] Remove CastP
|
|
39afe608
|
2019-12-10T12:04:44
|
|
[algs] Fold one more custom bsearch() in
One more to go.
|
|
486754a8
|
2019-09-23T23:48:08
|
|
[serialize] Extract iterable copy, copy_all
|