|
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.
|
|
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.
|
|
7608b191
|
2021-12-01T18:57:21
|
|
[directwrite] Set unsafe to break flag
Like the rest of platform shapers. Otherwise hb-shape --verify goes
crazy.
|
|
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
|
|
903a6bae
|
2021-11-15T19:58:33
|
|
[subset] layout_features filtering fix
we should not use get_size (), which returns length * item_size
|
|
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
|
|
60e20364
|
2021-11-02T15:02:36
|
|
[subset] use glyphset_gsub instead of glyphset for GDEF
|
|
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
|
|
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()
|
|
94158316
|
2021-11-01T22:47:26
|
|
[map] Add iterable constructor
|
|
a03b9b14
|
2021-11-01T22:45:11
|
|
[map] Add initializer_list and swap()
|
|
3604f5f2
|
2021-11-01T22:37:42
|
|
[algs] Include <initializer_list>
|
|
c30f6834
|
2021-11-01T22:29:14
|
|
[map] Add 5 methods
|
|
38debbab
|
2021-11-01T22:17:35
|
|
[set] Add successful check in swap()
|
|
b860b442
|
2021-11-01T22:00:18
|
|
[bimap] Simplify initialization
|
|
d2c364f6
|
2021-11-01T21:55:14
|
|
[array] Use default methods
|
|
6f74d80e
|
2021-11-01T21:49:32
|
|
[vector] Complete sorted_vector 5-methods
|
|
a28b5d03
|
2021-11-01T21:43:44
|
|
[vector] Add swap() friend to hb_sorted_vector_t
|
|
e97e7996
|
2021-11-01T21:34:46
|
|
Verbiage
|
|
34fa5e29
|
2021-11-01T21:25:03
|
|
[set] More default operators
|
|
b6c0b40f
|
2021-11-01T21:15:38
|
|
[vector] Use default constructor
|
|
1e3f57c0
|
2021-11-01T21:14:12
|
|
[bit-set] Implement standard-5 methods plus swap
|
|
11eadb5d
|
2021-11-01T21:07:09
|
|
[bit-set-invertible] Implement standard-5 methods & swap
|
|
dcd18da6
|
2021-11-01T20:55:30
|
|
[set] Add standard the 5 standard methods & tests
|
|
628a0f37
|
2021-11-01T20:36:55
|
|
[vector] Add more tests
|
|
f15858be
|
2021-11-01T20:26:07
|
|
[vector] Pre-allocate if iterator has random-access length
|
|
11135150
|
2021-11-01T20:23:12
|
|
[vector] Move test code into separate file
|
|
ee75e716
|
2021-11-01T20:18:49
|
|
[vector] Add initializer from iterable
|
|
18a078f9
|
2021-11-01T20:06:58
|
|
[vector] Implement move assignment using swap
|
|
eeda2c54
|
2021-11-01T18:36:57
|
|
[vector] Add initializer_list constructor & tests
|
|
c4846413
|
2021-11-01T18:48:24
|
|
Revert "[vector] Add initializer_list constructor & tests"
This reverts commit aa6182453b29b2d1cc974756fe0ae4220a846bf4.
|
|
aa618245
|
2021-11-01T18:36:57
|
|
[vector] Add initializer_list constructor & tests
|
|
8c055699
|
2021-11-01T17:59:17
|
|
[algs] Add hb_swap() ala, and using, std::swap()
Use it in vector.
Use ADL idiom.
|
|
bbaccf23
|
2021-11-01T16:45:36
|
|
Better round positions during scaling
Fixes https://github.com/harfbuzz/harfbuzz/issues/3274
|
|
52ccdc78
|
2021-10-28T14:56:13
|
|
docs: Add a link to the OpenType spec
Link to the name table specification in the
hb_ot_name_id_t docs.
|
|
8cb2f969
|
2021-10-28T07:42:07
|
|
Document hb_ot_name_t values
Add a short blurb for each value and refer
to the OpenType spec for more information.
Fixes: #3181
|