|
449c4296
|
2021-12-12T07:50:06
|
|
[ci] Try harder to fix this randomly failing job
The default --num-processes is the number of CPUs multiplied by 5,
which seems to give this VM a hard-time. Even the number of CPUs is too
much, so lets use half of that (I’m adding one just in case the division
gives zero).
|
|
52a33a15
|
2021-12-12T07:43:58
|
|
[ci] Try to fix the randomly failing valgrind job
|
|
be91d291
|
2021-12-12T04:45:54
|
|
3.2.0
|
|
77507a1d
|
2021-12-10T14:10:04
|
|
[subset] Don't double count visit lookups in closure_lookups
Each recursed lookup was getting counted once in closure_lookups() and then again in hb_closure_lookups_context_t::recurse.
|
|
d6702570
|
2021-12-10T13:52:05
|
|
[subset] reset the visited lookup count before each closure iteration.
|
|
23159084
|
2021-12-10T15:00:16
|
|
[morx] Reverse graphemese, not whole buffer
Fixes https://github.com/harfbuzz/harfbuzz/issues/3314
Supersedes https://github.com/harfbuzz/harfbuzz/pull/3315
|
|
5b995526
|
2021-12-10T14:59:56
|
|
[buffer] Fix reverse_group() to reverse() at the end
|
|
21c4fc10
|
2021-12-10T13:02:43
|
|
[buffer] Add optional merge_clusters arg to reverse_groups()
|
|
e949e512
|
2021-12-10T12:58:27
|
|
[ot-layout] Port foreach_grapheme to buffer foreach_group
|
|
eb96e69d
|
2021-12-10T12:55:29
|
|
[buffer] Add foreach_group()
|
|
1b78e04c
|
2021-12-10T12:45:43
|
|
[buffer] Add ::reverse_groups()
|
|
4cd96e73
|
2021-12-10T12:33:21
|
|
[buffer] Inline revers_range() / reverse()
|
|
5914acb3
|
2021-12-10T10:05:47
|
|
[repacker] Clear distance and position cache when assigning a new space.
A change in space will effect the distance assigned to the node and any of it's children so clear the distance cache.
|
|
706014f6
|
2021-12-01T20:20:12
|
|
[subset] (Chain)ContextSubst glyph_closure fix
- When pos_glyphs is empty, use current full glyphs set as input for
subsequent recursive closure process
- Also increase max_lookup_visit_count to 35000 cause a real font file hit
previous limit 20000 and some lookups are dropped unexpectedly
|
|
be2c488e
|
2021-12-09T15:44:06
|
|
[repacker] Improve vertex priority packing.
Previous priority implementation would move a node further back within it's layer, but at max priority was unable to move any further up than that. This updates the implementation to have 3 priority levels:
1. Distance is reduced by half of table size.
2. Distance is reduced by full table size (move to beginning of the layer).
3. Distance is set to 0. Vertex will be packed as soon as possible.
Also makes the iterative resolutions aware of max priority, so it won't keep trying to raise priority beyond the maximum.
|
|
441877f5
|
2021-12-09T16:38:05
|
|
[repacker] add test case for using max priority to resolve an overflow.
|
|
2404617a
|
2021-12-08T21:10:22
|
|
Update language system tag registry to OT 1.9
|
|
002a1f70
|
2021-12-08T10:45:30
|
|
[ft] Disable vertical funcs if HB_NO_VERTICAL
|
|
ef14cad7
|
2021-12-08T10:43:52
|
|
[GPOS] Disable vertical advance if HB_NO_VERTICAL
|
|
6ed22de1
|
2021-12-08T10:40:40
|
|
[CONFIG] Fix HB_NO_VERTICAL build without HB_TINY
|
|
53eebc7c
|
2021-12-08T08:32:41
|
|
[CONFIG] Add HB_NO_VERTICAL
|
|
9bc5d290
|
2021-12-08T08:16:17
|
|
[TINY] Don't disable VORG table in any config profile
Is needed for vertical layout of CFF fonts.
Fixes https://github.com/harfbuzz/harfbuzz/discussions/3294#discussioncomment-1770313
|
|
3e4a2509
|
2021-12-06T16:00:15
|
|
[repacker] add a maximum number of roots that can be moved in one iteration.
Set to half of the roots in a space. This prevents the repacker from moving all roots in a space to a new space if their are overflows in every root.
|
|
02b12d79
|
2021-12-06T15:23:35
|
|
[repacker] Move all overflowing roots to a new space simultaneously.
|
|
fa966bcc
|
2021-12-06T12:54:19
|
|
[repacker] create repacker output buffer after final length is known.
Don't rely on a buffer provided by the caller, as it may not be large enough.
|
|
51655a07
|
2021-12-05T19:27:57
|
|
[subset] COLR : only include glyphs after COLR closure
|
|
70f8c57e
|
2021-12-04T19:49:23
|
|
[buffer] Rename find_min_cluster
|
|
94d43c00
|
2021-12-04T16:56:39
|
|
[buffer] Merge and rename clear_glyph_flags()
|
|
b95d252f
|
2021-12-03T11:49:55
|
|
[CONFIG] Add HB_CONFIG_OVERRIDE_H to simplify config overrides
|
|
74b46b29
|
2021-12-02T19:50:16
|
|
[subset] MATH: don't serialize coverage table when iterator is empty
when iterator is empty, just set coverage offset to 0.
serialize() in coverage will at lease write out a 16-bit format header.
|
|
1d9ef3a7
|
2021-12-01T10:30:27
|
|
[subset] Actually fix end_cp unitialized warning.
|
|
d8635dfe
|
2021-12-01T10:14:10
|
|
[subset] Fix warning about uninitialized use of end_cp.
|
|
6c81cd95
|
2021-12-01T19:29:34
|
|
[tests] Add tests for platform shapers
Fixes https://github.com/harfbuzz/harfbuzz/issues/3115
|
|
7608b191
|
2021-12-01T18:57:21
|
|
[directwrite] Set unsafe to break flag
Like the rest of platform shapers. Otherwise hb-shape --verify goes
crazy.
|
|
361a4386
|
2021-12-01T03:16:46
|
|
Revert "Revert "[hb-directwrite] Don't load dwrit.dll dynamically""
This reverts commit ecbe224743c205c99aa459b27e7fb241cc4b1dc5.
It was causing directwrite shaper to crash in MSVC builds.
|
|
549e2b70
|
2021-12-01T03:16:26
|
|
Revert "Remove direct link to dwrite from meson scripts"
This reverts commit 6ea6c581edb3cecf1b4b42854e37b40d6d067cd3.
|
|
071aea42
|
2021-11-30T16:16:06
|
|
[iter] add specialized implementation for hb_concat forward when iterators are not random access.
|
|
2e935514
|
2021-11-30T16:02:05
|
|
[iter] fix forward implementation in hb_concat().
Add test coverage for forward.
|
|
39e76af1
|
2021-11-30T15:25:40
|
|
[subset] add all_links () to object_t.
Helper to provide easy access to concatenated real and virtual links iterator.
|
|
9121ed0c
|
2021-11-30T13:45:22
|
|
[subset] Improve sharing of Ligature subtables.
Ligature subtables use virtual links to enforce an ordering constraint between the subtables and the coverage table. Unfortunately this has the sideeffect of prevent the subtables from being shared by another Ligature with a different coverage table since object equality compares all links real and virtual. This change makes virtual links stored separately from real links and updates the equality check to only check real links. If an object is de-duped any virtual links it has are merged into the object that replaces it.
|
|
ca227411
|
2021-11-30T12:53:15
|
|
[iter] add hb_concat (a, b).
Iterates over a, and then over b.
|
|
95329081
|
2021-11-26T16:18:42
|
|
[subset] further optimize cmap4 packing.
|
|
59914382
|
2021-11-26T14:19:39
|
|
[subset] Don't pad glyphs when using long loca.
|
|
d9660fd5
|
2021-11-25T18:15:35
|
|
[subset] Make cmap4 packing more optimal.
The current CMAP4 implementation uses whatever the current codepoint ranges are and then encodes them as indivudal glyph ids or as a delta if possible. However, it's often possible to save bytes by splitting up existing ranges and encoding parts of them using deltas where the cost of splitting the range is less than encoding each glyph individual.
|
|
8aed5c21
|
2021-11-26T17:54:18
|
|
3.1.2
|
|
720ab088
|
2021-11-25T11:49:16
|
|
[util] Add --single-par
Use it in aots tests
Fixes https://github.com/harfbuzz/harfbuzz/issues/3129
Related https://github.com/harfbuzz/harfbuzz/issues/3298
|
|
b58afe58
|
2021-11-25T11:34:24
|
|
[util] Undo treat as single-paragraph text provided on cmdline
Reverts d92ee726ce3b2fc2c249407d977433f0badcc918
except that it does so even in batch mode.
Am going to add a --single-par mode that will affect all input
modes.
Part of https://github.com/harfbuzz/harfbuzz/issues/3129
Fixes https://github.com/harfbuzz/harfbuzz/issues/3298
|
|
903a6bae
|
2021-11-15T19:58:33
|
|
[subset] layout_features filtering fix
we should not use get_size (), which returns length * item_size
|
|
31607897
|
2021-11-22T03:31:50
|
|
[ci] windows-2016 image is going away in a bit
https://github.com/actions/virtual-environments/issues/4312
windows-latest is the same as windows-2019, but we are using explicit
windows-2019 image for when they become different.
|
|
ed65577e
|
2021-11-20T20:51:26
|
|
[ci] Split sanitizers job
It was running four different builds sequentially. Each should have been
its own job.
|
|
69d8f27c
|
2021-11-20T17:09:15
|
|
[meson] Require 0.55.0
We implicitly require it for building ragel subproject. This new version
requirement should satisfied in both Fedora 33 and Debian bullseye, and
not be too cutting edge for us.
|
|
84dc4e85
|
2021-11-08T09:36:31
|
|
[subset] avoid writing out duplicate extra glyph names in post table
Add check for possible duplicate with other name index
|
|
325f2629
|
2021-11-19T17:19:09
|
|
[array] Fix a couple constexpr warnings
./subprojects/harfbuzz/src/hb-array.hh:71:25: warning: 'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior [-Wconstexpr-not-const]
constexpr hb_array_t& operator = (const hb_array_t<U> &o)
^
const
../subprojects/harfbuzz/src/hb-array.hh:72:5: warning: use of this statement in a constexpr function is a C++14 extension [-Wc++14-extensions]
{ arrayZ = o.arrayZ; length = o.length; backwards_length = o.backwards_length; return *this; }
^
../subprojects/harfbuzz/src/hb-array.hh:329:32: warning: 'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior [-Wconstexpr-not-const]
constexpr hb_sorted_array_t& operator = (const hb_array_t<U> &o)
^
const
../subprojects/harfbuzz/src/hb-array.hh:330:5: warning: use of this statement in a constexpr function is a C++14 extension [-Wc++14-extensions]
{ hb_array_t<Type> (*this) = o; return *this; }
^
4 warnings generated.
|
|
98fefd5d
|
2021-11-19T13:34:53
|
|
Merge pull request #3301 from harfbuzz/hashmap-classes
Hashmap classes
|
|
ca418cac
|
2021-11-17T16:42:08
|
|
[subset] keep features that have FeatureParams and the tag is "size"
|
|
e88fc41e
|
2021-11-18T16:53:36
|
|
[subset] inputSequence could be empty, change the sanity check
|
|
4731b107
|
2021-11-19T12:33:37
|
|
[array] Mark constructors constexpr
../src/hb-map.hh:44:38: note: non-constexpr constructor 'hb_array_t' cannot be used in a constant expression
static constexpr K INVALID_KEY = kINVALID;
^
|
|
1da7423e
|
2021-11-19T12:11:41
|
|
[array] Add constructor taking std::nullptr_t
Not all impls implement nullptr_t in a way that would automatically
convert to what we were accepting.
In file included from ../src/test-map.cc:27:
../src/hb-map.hh:44:22: error: no viable conversion from 'nullptr_t' to 'const hb_array_t<const char>'
static constexpr K INVALID_KEY = kINVALID;
^ ~~~~~~~~
|
|
e456922a
|
2021-11-19T12:04:08
|
|
[test] Fix nullptr_t scope issue
|
|
5157cac0
|
2021-11-19T12:03:10
|
|
[test] Silence unused-variable erros in test
|
|
394f7729
|
2021-11-19T11:49:23
|
|
[map] Allow storing classes in the hashmap
Fixes https://github.com/harfbuzz/harfbuzz/issues/3293
The trick was to change the type of the invalid key/value to be non-class.
|
|
cba17fd1
|
2021-11-19T11:49:03
|
|
[array] Add default methods again, this time the full set
Should add tests.
|
|
a75b96f7
|
2021-11-16T14:34:07
|
|
[sanitize] In lookup sanitize don't try to access subtable 0 if it isn't there.
|
|
82a9f544
|
2021-11-10T10:15:38
|
|
[colr] Simplify sanitize
|
|
64b29dbd
|
2021-11-09T09:13:14
|
|
[subset] reuse colrv1 max nesting depth constant for sanitize.
|
|
ace98cc6
|
2021-11-08T15:47:56
|
|
[subset] Only sanitize recursion depth in COLR.
|
|
782a7377
|
2021-11-04T13:39:11
|
|
[sanitize] add a maximum recursion depth for sanitize.
|
|
cd5c6cd0
|
2021-11-08T06:59:55
|
|
3.1.1
|
|
1e07d42a
|
2021-11-07T01:19:42
|
|
Typo fix
|
|
1fd7fd98
|
2021-11-06T10:18:20
|
|
Cosmetics: Avoid confusing indentation
This line had me confused for a second because
the condition looked like a cast and the if just
looked misplaced. Add a line break to prevent
such confusion.
|
|
3471f8f6
|
2021-11-06T10:17:20
|
|
docs: Clarify a doc comment
Reword the docs for hb_ot_layout_script_select_language and
be a bit more specific about the returned index.
|
|
07dc34bd
|
2021-11-05T14:45:20
|
|
[mutex] Try work around GCC cast-align error/warning
Shouldn't be needed because of the alignas(). Oh well...
Might fix https://github.com/harfbuzz/harfbuzz/issues/3283
|
|
77eeec53
|
2021-11-03T23:31:03
|
|
3.1.0
|
|
54e7d626
|
2021-11-03T14:43:34
|
|
[array] Remove defaulted destructor
|
|
f51b48c8
|
2021-11-02T16:16:52
|
|
[subset] Fix fuzzer found memory leak.
Happens because an insert into a map with an invalid key reports successful, but this causes the set being inserted to be lost.
|
|
b1cd0dce
|
2021-11-02T17:56:11
|
|
[map] Add INVALID_KEY and INVALID_VALUE
|
|
540f19b6
|
2021-10-29T17:11:53
|
|
[subset] fix bug in (Chain)ContextFormat2
Only keep rulesets for glyphs class numbers that survived in coverage
|
|
e260eeb9
|
2021-11-02T15:31:32
|
|
[subset] Update test goldens for gdef.glyphset.
|
|
60e20364
|
2021-11-02T15:02:36
|
|
[subset] use glyphset_gsub instead of glyphset for GDEF
|
|
e39647c0
|
2021-11-02T15:25:05
|
|
[subset] update subset goldens to fix tests.
|
|
0a7563a5
|
2021-11-01T14:56:14
|
|
[subset] fuzzer fix: https://oss-fuzz.com/testcase?key=6254792024915968
Make sure input is valid, each gid has a corresponding offset value in
the map
|
|
364b6b39
|
2021-10-31T14:38:20
|
|
[subset] Don't assume FeatureList is sorted
Though the spec said FeatureRecords are sorted alphabetically by feature
tag, there're font files with unsorted FeatureList. And harfbuzz is not
able to subset these files correctly because we use binary search in
finding featureRecords when collecting lookups. Also
find_duplicate_features needs to be updated to handle this.
|
|
49c93924
|
2021-09-24T09:28:10
|
|
[subset] During LigatureSubstFormat1 subsetting always place Coverage last.
In Windows 7 on Chrome if the coverage table comes before any of the LigatureSet or Ligature subtables the font won't load. This changes the packing order to always place the Coverage table last. Virtual links are used to ensure the repacker maintains the desired ordering.
Coincidentally fontTools also does the same thing (https://github.com/fonttools/fonttools/blob/a3f988fbf621142d7d9b3e68a69725b88f358869/Lib/fontTools/ttLib/tables/otTables.py#L1137) to reduce overflows during packing.
|
|
9643d770
|
2021-09-24T11:39:59
|
|
[repacker] add more detailed comment about virtual links.
|
|
5bfc7d10
|
2021-09-23T14:45:20
|
|
[repacker] remove VirtualOffset struct.
Make and add_virtual_link () specialization of add_link() instead.
|
|
bc4c5341
|
2021-09-23T14:41:42
|
|
[repacker] Add test for virtual links in the repacker.
|
|
7615b94e
|
2021-09-23T14:14:06
|
|
[repacker] add 'virtual links' to the serializer.
These aren't associated with an offset field, but instead exist solely to add an ordering constraint to the object graph.
|
|
59d8f6c8
|
2021-11-02T10:33:53
|
|
[map] Fix copy assignment operator
|
|
bbda020c
|
2021-11-02T08:40:59
|
|
Merge pull request #3278 from harfbuzz/more-std
More standard idioms
|
|
459e485b
|
2021-11-02T09:36:12
|
|
[meta] Remove otherwise-empty test-meta
|
|
b8724c60
|
2021-11-02T00:49:40
|
|
[meta] Add in-house impl of hb_is_convertible()
|
|
7a078c39
|
2021-11-02T00:44:51
|
|
[meta] Use std::conditional instead of hb_conditional()
|
|
943921cf
|
2021-11-02T00:26:46
|
|
[meta] Use more std type_traits
|
|
6d555ce8
|
2021-11-02T00:18:22
|
|
[meta] Use std::forward instead of hb_forward()
|
|
811f80a7
|
2021-11-02T00:14:34
|
|
[algs] Use std::move instead of hb_move()
|
|
896e0c74
|
2021-11-02T00:06:30
|
|
[meta] Remove unused traits
|
|
be42800f
|
2021-11-02T00:04:18
|
|
[meta] Use std::is_trivially_... instead of internal copies
|
|
30c05e8b
|
2021-11-01T23:57:00
|
|
[algs] include <new>
|
|
4c6fd7cd
|
2021-11-01T23:13:34
|
|
[map] Try moving items when resizing
|
|
a28ea8d7
|
2021-11-01T22:50:54
|
|
Simplify swap()
|