src


Log

Author Commit Date CI Message
Behdad Esfahbod 6ed22de1 2021-12-08T10:40:40 [CONFIG] Fix HB_NO_VERTICAL build without HB_TINY
Behdad Esfahbod 53eebc7c 2021-12-08T08:32:41 [CONFIG] Add HB_NO_VERTICAL
Behdad Esfahbod 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
Garret Rieger 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.
Garret Rieger 02b12d79 2021-12-06T15:23:35 [repacker] Move all overflowing roots to a new space simultaneously.
Garret Rieger 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.
Qunxin Liu 51655a07 2021-12-05T19:27:57 [subset] COLR : only include glyphs after COLR closure
Behdad Esfahbod 70f8c57e 2021-12-04T19:49:23 [buffer] Rename find_min_cluster
Behdad Esfahbod 94d43c00 2021-12-04T16:56:39 [buffer] Merge and rename clear_glyph_flags()
Behdad Esfahbod b95d252f 2021-12-03T11:49:55 [CONFIG] Add HB_CONFIG_OVERRIDE_H to simplify config overrides
Qunxin Liu 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.
Garret Rieger 1d9ef3a7 2021-12-01T10:30:27 [subset] Actually fix end_cp unitialized warning.
Garret Rieger d8635dfe 2021-12-01T10:14:10 [subset] Fix warning about uninitialized use of end_cp.
Khaled Hosny 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.
Khaled Hosny 549e2b70 2021-12-01T03:16:26 Revert "Remove direct link to dwrite from meson scripts" This reverts commit 6ea6c581edb3cecf1b4b42854e37b40d6d067cd3.
Khaled Hosny 7608b191 2021-12-01T18:57:21 [directwrite] Set unsafe to break flag Like the rest of platform shapers. Otherwise hb-shape --verify goes crazy.
Garret Rieger 071aea42 2021-11-30T16:16:06 [iter] add specialized implementation for hb_concat forward when iterators are not random access.
Garret Rieger 2e935514 2021-11-30T16:02:05 [iter] fix forward implementation in hb_concat(). Add test coverage for forward.
Garret Rieger 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.
Garret Rieger 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.
Garret Rieger ca227411 2021-11-30T12:53:15 [iter] add hb_concat (a, b). Iterates over a, and then over b.
Garret Rieger 95329081 2021-11-26T16:18:42 [subset] further optimize cmap4 packing.
Garret Rieger 59914382 2021-11-26T14:19:39 [subset] Don't pad glyphs when using long loca.
Garret Rieger 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.
Khaled Hosny 8aed5c21 2021-11-26T17:54:18 3.1.2
Qunxin Liu 903a6bae 2021-11-15T19:58:33 [subset] layout_features filtering fix we should not use get_size (), which returns length * item_size
Khaled Hosny 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.
Qunxin Liu 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
Behdad Esfahbod 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.
Behdad Esfahbod 98fefd5d 2021-11-19T13:34:53 Merge pull request #3301 from harfbuzz/hashmap-classes Hashmap classes
Qunxin Liu ca418cac 2021-11-17T16:42:08 [subset] keep features that have FeatureParams and the tag is "size"
Qunxin Liu e88fc41e 2021-11-18T16:53:36 [subset] inputSequence could be empty, change the sanity check
Behdad Esfahbod 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; ^
Behdad Esfahbod 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; ^ ~~~~~~~~
Behdad Esfahbod e456922a 2021-11-19T12:04:08 [test] Fix nullptr_t scope issue
Behdad Esfahbod 5157cac0 2021-11-19T12:03:10 [test] Silence unused-variable erros in test
Behdad Esfahbod 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.
Behdad Esfahbod cba17fd1 2021-11-19T11:49:03 [array] Add default methods again, this time the full set Should add tests.
Garret Rieger a75b96f7 2021-11-16T14:34:07 [sanitize] In lookup sanitize don't try to access subtable 0 if it isn't there.
Behdad Esfahbod 82a9f544 2021-11-10T10:15:38 [colr] Simplify sanitize
Garret Rieger 64b29dbd 2021-11-09T09:13:14 [subset] reuse colrv1 max nesting depth constant for sanitize.
Garret Rieger ace98cc6 2021-11-08T15:47:56 [subset] Only sanitize recursion depth in COLR.
Garret Rieger 782a7377 2021-11-04T13:39:11 [sanitize] add a maximum recursion depth for sanitize.
Khaled Hosny cd5c6cd0 2021-11-08T06:59:55 3.1.1
Matthias Clasen 1e07d42a 2021-11-07T01:19:42 Typo fix
Matthias Clasen 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.
Matthias Clasen 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.
Behdad Esfahbod 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
Khaled Hosny 77eeec53 2021-11-03T23:31:03 3.1.0
Behdad Esfahbod 54e7d626 2021-11-03T14:43:34 [array] Remove defaulted destructor
Garret Rieger 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.
Behdad Esfahbod b1cd0dce 2021-11-02T17:56:11 [map] Add INVALID_KEY and INVALID_VALUE
Qunxin Liu 540f19b6 2021-10-29T17:11:53 [subset] fix bug in (Chain)ContextFormat2 Only keep rulesets for glyphs class numbers that survived in coverage
Qunxin Liu 60e20364 2021-11-02T15:02:36 [subset] use glyphset_gsub instead of glyphset for GDEF
Qunxin Liu 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
Qunxin Liu 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.
Garret Rieger 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.
Garret Rieger 9643d770 2021-09-24T11:39:59 [repacker] add more detailed comment about virtual links.
Garret Rieger 5bfc7d10 2021-09-23T14:45:20 [repacker] remove VirtualOffset struct. Make and add_virtual_link () specialization of add_link() instead.
Garret Rieger bc4c5341 2021-09-23T14:41:42 [repacker] Add test for virtual links in the repacker.
Garret Rieger 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.
Behdad Esfahbod 59d8f6c8 2021-11-02T10:33:53 [map] Fix copy assignment operator
Behdad Esfahbod 459e485b 2021-11-02T09:36:12 [meta] Remove otherwise-empty test-meta
Behdad Esfahbod b8724c60 2021-11-02T00:49:40 [meta] Add in-house impl of hb_is_convertible()
Behdad Esfahbod 7a078c39 2021-11-02T00:44:51 [meta] Use std::conditional instead of hb_conditional()
Behdad Esfahbod 943921cf 2021-11-02T00:26:46 [meta] Use more std type_traits
Behdad Esfahbod 6d555ce8 2021-11-02T00:18:22 [meta] Use std::forward instead of hb_forward()
Behdad Esfahbod 811f80a7 2021-11-02T00:14:34 [algs] Use std::move instead of hb_move()
Behdad Esfahbod 896e0c74 2021-11-02T00:06:30 [meta] Remove unused traits
Behdad Esfahbod be42800f 2021-11-02T00:04:18 [meta] Use std::is_trivially_... instead of internal copies
Behdad Esfahbod 30c05e8b 2021-11-01T23:57:00 [algs] include <new>
Behdad Esfahbod 4c6fd7cd 2021-11-01T23:13:34 [map] Try moving items when resizing
Behdad Esfahbod a28ea8d7 2021-11-01T22:50:54 Simplify swap()
Behdad Esfahbod 94158316 2021-11-01T22:47:26 [map] Add iterable constructor
Behdad Esfahbod a03b9b14 2021-11-01T22:45:11 [map] Add initializer_list and swap()
Behdad Esfahbod 3604f5f2 2021-11-01T22:37:42 [algs] Include <initializer_list>
Behdad Esfahbod c30f6834 2021-11-01T22:29:14 [map] Add 5 methods
Behdad Esfahbod 38debbab 2021-11-01T22:17:35 [set] Add successful check in swap()
Behdad Esfahbod b860b442 2021-11-01T22:00:18 [bimap] Simplify initialization
Behdad Esfahbod d2c364f6 2021-11-01T21:55:14 [array] Use default methods
Behdad Esfahbod 6f74d80e 2021-11-01T21:49:32 [vector] Complete sorted_vector 5-methods
Behdad Esfahbod a28b5d03 2021-11-01T21:43:44 [vector] Add swap() friend to hb_sorted_vector_t
Behdad Esfahbod e97e7996 2021-11-01T21:34:46 Verbiage
Behdad Esfahbod 34fa5e29 2021-11-01T21:25:03 [set] More default operators
Behdad Esfahbod b6c0b40f 2021-11-01T21:15:38 [vector] Use default constructor
Behdad Esfahbod 1e3f57c0 2021-11-01T21:14:12 [bit-set] Implement standard-5 methods plus swap
Behdad Esfahbod 11eadb5d 2021-11-01T21:07:09 [bit-set-invertible] Implement standard-5 methods & swap
Behdad Esfahbod dcd18da6 2021-11-01T20:55:30 [set] Add standard the 5 standard methods & tests
Behdad Esfahbod 628a0f37 2021-11-01T20:36:55 [vector] Add more tests
Behdad Esfahbod f15858be 2021-11-01T20:26:07 [vector] Pre-allocate if iterator has random-access length
Behdad Esfahbod 11135150 2021-11-01T20:23:12 [vector] Move test code into separate file
Behdad Esfahbod ee75e716 2021-11-01T20:18:49 [vector] Add initializer from iterable
Behdad Esfahbod 18a078f9 2021-11-01T20:06:58 [vector] Implement move assignment using swap
Behdad Esfahbod eeda2c54 2021-11-01T18:36:57 [vector] Add initializer_list constructor & tests
Behdad Esfahbod c4846413 2021-11-01T18:48:24 Revert "[vector] Add initializer_list constructor & tests" This reverts commit aa6182453b29b2d1cc974756fe0ae4220a846bf4.
Behdad Esfahbod aa618245 2021-11-01T18:36:57 [vector] Add initializer_list constructor & tests
Behdad Esfahbod 8c055699 2021-11-01T17:59:17 [algs] Add hb_swap() ala, and using, std::swap() Use it in vector. Use ADL idiom.
Behdad Esfahbod bbaccf23 2021-11-01T16:45:36 Better round positions during scaling Fixes https://github.com/harfbuzz/harfbuzz/issues/3274
Matthias Clasen 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.
Matthias Clasen 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