|
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
|
|
defe9b6d
|
2019-10-25T10:07:26
|
|
crash fix : Heap-buffer-overflow READ 2
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18513
|
|
1f0a9d9b
|
2019-09-17T11:10:08
|
|
[subset] GPOS Lookup Type 2: PairPos
|
|
0558413f
|
2019-10-01T13:49:55
|
|
Minor, tweak spaces
|
|
b0c3eb06
|
2019-09-18T16:11:44
|
|
[subset] GPOS Lookup Type 3: CursivePos
|
|
68d39ea4
|
2019-09-24T13:52:46
|
|
Revert previous change and fix -Wrange-loop-analysis complains
|
|
cbc0646a
|
2019-09-24T12:08:12
|
|
Minor, normalize for each calls
|
|
f0a76779
|
2019-09-23T21:09:39
|
|
[gpos] minor
|
|
c1a585fa
|
2019-09-21T23:30:52
|
|
[gpos] minor
|
|
d87d3899
|
2019-09-21T17:27:39
|
|
Fix clang -Wrange-loop-analysis complains
./hb-ot-layout-gpos-table.hh:674:43: error: loop variable '_' is always a copy because the range of type 'hb_zip_iter_t<hb_iter_type<hb_array_t<const OT::IntType<unsigned short, 2> > &>, hb_iter_type<hb_array_t<const OT::IntType<unsigned short, 2> > &> >' (aka 'hb_zip_iter_t<hb_array_t<const OT::IntType<unsigned short, 2> >, hb_array_t<const OT::IntType<unsigned short, 2> > >') does not return a reference [-Werror,-Wrange-loop-analysis]
for (const hb_pair_t<Value, Value>& _ : hb_zip (val_iter, first_val_iter))
^
./hb-ot-layout-gpos-table.hh:674:12: note: use non-reference type 'hb_pair_t<OT::Value, OT::Value>' (aka 'hb_pair_t<IntType<unsigned short, 2>, IntType<unsigned short, 2> >')
for (const hb_pair_t<Value, Value>& _ : hb_zip (val_iter, first_val_iter))
and
In file included from hb-subset.cc:44:
./hb-ot-vorg-table.hh:87:34: error: loop variable '_' is always a copy because the range of type 'hb_map_iter_t<hb_filter_iter_t<hb_sorted_array_t<const OT::VertOriginMetric>, const hb_set_t *, OT::HBGlyphID OT::VertOriginMetric::*, nullptr>, (lambda at ./hb-ot-vorg-table.hh:100:15), hb_function_sortedness_t::NOT_SORTED, nullptr>' does not return a reference [-Werror,-Wrange-loop-analysis]
for (const VertOriginMetric& _ : it)
^
./hb-ot-vorg-table.hh:113:17: note: in instantiation of function template specialization 'OT::VORG::serialize<hb_map_iter_t<hb_filter_iter_t<hb_sorted_array_t<const OT::VertOriginMetric>, const hb_set_t *, OT::HBGlyphID OT::VertOriginMetric::*, nullptr>, (lambda at ./hb-ot-vorg-table.hh:100:15), hb_function_sortedness_t::NOT_SORTED, nullptr>, nullptr>' requested here
vorg_prime->serialize (c->serializer, it, defaultVertOriginY);
^
./hb-ot-vorg-table.hh:87:10: note: use non-reference type 'OT::VertOriginMetric'
for (const VertOriginMetric& _ : it)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
6e42a418
|
2019-09-21T16:25:54
|
|
Minor, turn more of hb_apply to for each
|
|
d512087e
|
2019-09-14T10:36:29
|
|
Rename GlyphID to HBGlyphID
Avoid collision with macOS's ATSUnicodeTypes.h GlyphID
|
|
3c81246f
|
2019-09-01T19:25:50
|
|
[subset] Use newer iter tools in SinglePosFormat1
|
|
e0e0c8c1
|
2019-08-29T14:58:16
|
|
Minor
|
|
a0b4ac4d
|
2019-08-24T17:57:14
|
|
Turn 8 spaces to tab across the project
According to the current code style of the project
|
|
321d5588
|
2019-07-02T16:30:57
|
|
[subset] Add subsetting for GPOS Lookup Type 1: Single Adjustment Positioning Subtable
|
|
c1841802
|
2019-07-16T22:10:24
|
|
Fix C++20 compile warning on implicit capture of this with '=' default capture (#1833)
Happens when compiled with -std=c++2a, the fix just makes the captures explicit to resolve the issue. Just adding this in addition to = doesn't work in C++11.
src/hb-ot-layout-gpos-table.hh:737:18: warning: implicit capture of 'this' with a capture default of '=' is deprecated [-Wdeprecated-this-capture]
{ return (this+_).intersects (glyphs, valueFormat); })
^
src/hb-ot-layout-gpos-table.hh:736:16: note: add an explicit capture of 'this' to capture '*this' by reference
| hb_map ([=] (const OffsetTo<PairSet> &_)
^
, this
|
|
7dcf8e12
|
2019-06-26T13:44:10
|
|
[config] Fix build with HB_NO_OT_LAYOUT
|
|
c8f529a0
|
2019-06-19T19:33:15
|
|
[config] Add HB_NO_HINTING, enabled by HB_TINY
Disables HintingDevice tables and Anchors addressing contour points.
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
|
|
78d35f0e
|
2019-05-15T18:15:05
|
|
Reduce captures of lambdas
|
|
dfc57802
|
2019-05-07T23:26:09
|
|
Fix more double-promotion errors
WHy do only some of the clang bots catch this I have no idea :(.
|
|
83e3eabd
|
2019-05-07T20:58:43
|
|
Whitespace
|
|
41248cce
|
2019-05-07T20:54:31
|
|
Remove MIN/MAX in favor of hb_min/hb_max
|
|
36bb24f7
|
2019-05-05T10:14:17
|
|
[dispatch] Forward arguments in all dispatch multiplexers
|
|
b10f6593
|
2019-05-05T09:23:35
|
|
[dispatch] Use functionality from previous commit
To remove a couple of unwanted wrapper methods
|
|
88a41472
|
2019-05-02T14:22:31
|
|
[serializer] Accept exact type in serialize_subset/copy()
|
|
92588782
|
2019-04-30T13:05:10
|
|
Remove space between right angle brackets now that we have C++11 (#1689)
|
|
95df00ae
|
2019-04-12T17:50:03
|
|
Hide a few static methods
Looks like static methods that do not get inlined end up exported.
We have a lot more. Need to protect all at some point. Wish there
was an easier way, like the visibility flag we pass that automatically
hides all inline methods.
Was exposed by check-symbols.sh when compiling on OS X 10.14 with:
$ make CPPFLAGS=-Oz CXXFLAGS=-flto=thin LDFLAGS=-lc++
|
|
9d8c7204
|
2019-03-29T21:59:28
|
|
Whitespace
|
|
f5ef8a73
|
2019-03-29T21:57:17
|
|
[iter] Port one more function to dagger
|
|
090fe56d
|
2019-01-25T15:34:03
|
|
Merge branch 'master' into iter
|
|
ef006549
|
2019-01-22T12:08:57
|
|
Convert tag enum class consts to static constexpr
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
|
|
a46874f1
|
2018-12-28T21:23:26
|
|
[iter] Revert back uses of C++11 auto type deduction
|
|
e1688424
|
2018-12-26T22:27:23
|
|
[iter] Port Coverage iterator to hb_iter_t
|