Log

Author Commit Date CI Message
Kleis Auke Wolthuizen 7b51bc95 2022-07-06T12:58:15 [cplusplus] Fix build on GCC < 7
Behdad Esfahbod 386e1bba 2022-07-05T12:46:05 Merge pull request #3699 from googlefonts/filter_scripts [subset] Add support for --layout-scripts
Garret Rieger 30309ec8 2022-07-05T18:33:19 [subset] add null element in _filter_tag_list.
Garret Rieger 216cf594 2022-07-05T17:49:12 [subset] Allocate space for null entry in script/feature list.
Behdad Esfahbod d9ab805e 2022-07-05T11:45:10 Fix LookupFlag negation Fixes https://github.com/harfbuzz/harfbuzz/issues/3703
Behdad Esfahbod b0cb9a1a 2022-07-03T15:32:32 Make get_leading_bearing return bool Fixes https://github.com/harfbuzz/harfbuzz/issues/3496 Part of supporting >64k glyphs correctly.
Behdad Esfahbod 115e1a03 2022-07-03T14:45:12 [glyf] Relax condition for matching number of coords
Behdad Esfahbod 800760c5 2022-07-03T13:21:06 [glyf] Rename get_extents functions for clarity
Behdad Esfahbod ab327f93 2022-07-03T13:17:03 [glyf] Fix another bug with scaling Of advances this time. That codepath is never exercised though, if font has HVAR table.
Behdad Esfahbod f46ddeba 2022-07-03T13:12:49 [hmtx/glyf] Rename side-bearing functions for clarity
Behdad Esfahbod 23435d52 2022-07-03T13:04:27 [hvar] Rename advance function for clarity
Behdad Esfahbod 9f974cae 2022-07-03T13:03:12 [hvar] Rename lsb function for clarity
Behdad Esfahbod ab5ce643 2022-07-03T13:00:22 [VVAR] Rename vorg function for clarity
Behdad Esfahbod b2d60cbd 2022-07-03T12:56:48 [glyf] Rename advance functions for clarity
Behdad Esfahbod 35c00c12 2022-07-03T12:54:17 [hmtx] Rename advance functions for clarity
Behdad Esfahbod 6b82d4fa 2022-07-03T12:45:27 [glyf] Make an optional argument non-optional
Behdad Esfahbod 3ef59080 2022-07-03T12:44:24 [glyf] Internal flip a variable
Behdad Esfahbod b07fa2bb 2022-07-02T13:43:23 [ot-font] Respect VORG even if it has no variations
Behdad Esfahbod 71d52e10 2022-07-02T11:21:36 [var] Fix getting side-bearing variations In HVAR/VVAR, if the side-bearing mappings are null, it means the table does not have them and they should be loaded from glyf table. Previous logic was returning zer0. Part of fixing https://github.com/harfbuzz/harfbuzz/issues/1694
Behdad Esfahbod 78b4f398 2022-07-02T16:37:26 [glyf] Fix confusion between scaled vs unscaled lsb Was always broken.
Behdad Esfahbod 6665881c 2022-07-02T11:21:12 [glyf] Change side-bearing rounding
Behdad Esfahbod 0a295fcd 2022-07-01T17:16:24 [var] Fix DeltaSetIndexMapFormat1 Fixes https://github.com/harfbuzz/harfbuzz/issues/3692
Behdad Esfahbod 351cccdb 2022-07-01T16:52:49 [buffer-deserialize] Deserialize glyph flags Fixes https://github.com/harfbuzz/harfbuzz/issues/1482
Behdad Esfahbod 5134041f 2022-07-01T16:48:47 [deserialize-json] Make it actually work! Was not correctly deserializing glyph names as it was not dropping double-quotes from glyph name before parsing.
Behdad Esfahbod 534b0911 2022-07-01T16:20:31 [aat-layout] Add an unlikely()
Behdad Esfahbod b8c7c0a0 2022-07-01T12:11:15 [fuzzer] In 50% of runs don't fail the allocator
Stephan Bergmann 14b01812 2021-08-09T17:17:48 hb_graphite2_cluster_t::advance can apparently be negative ...as seen with HarfBuzz used by LibreOffice, with `instdir/program/soffice --headless --convert-to pdf` of doc/abi6073-2.doc from the LibreOffice crash- testing corpus when run under UBSan, > hb-graphite2.cc:361:15: runtime error: -1024 is outside the range of representable values of type 'unsigned int' > #0 in _hb_graphite2_shape at workdir/UnpackedTarball/harfbuzz/src/hb-graphite2.cc:361:15 > #1 in _hb_shape_plan_execute_internal(hb_shape_plan_t*, hb_font_t*, hb_buffer_t*, hb_feature_t const*, unsigned int) at workdir/UnpackedTarball/harfbuzz/src/./hb-shaper-list.hh:38:1 > #2 in hb_shape_plan_execute at workdir/UnpackedTarball/harfbuzz/src/hb-shape-plan.cc:453:14 > #3 in hb_shape_full at workdir/UnpackedTarball/harfbuzz/src/hb-shape.cc:139:19 > #4 in GenericSalLayout::LayoutText(ImplLayoutArgs&, SalLayoutGlyphsImpl const*) at vcl/source/gdi/CommonSalLayout.cxx:495:23 > #5 in OutputDevice::getFallbackLayout(LogicalFontInstance*, int, ImplLayoutArgs&, SalLayoutGlyphs const*) const at vcl/source/outdev/font.cxx:1232:21 > #6 in OutputDevice::ImplGlyphFallbackLayout(std::unique_ptr<SalLayout, std::default_delete<SalLayout> >, ImplLayoutArgs&, SalLayoutGlyphs const*) const at vcl/source/outdev/font.cxx:1300:48 > #7 in OutputDevice::ImplLayout(rtl::OUString const&, int, int, Point const&, long, long const*, SalLayoutFlags, vcl::TextLayoutCache const*, SalLayoutGlyphs const*) const at vcl/source/outdev/text.cxx:1332:22 > #8 in lcl_CreateLayout(SwTextGlyphsKey const&, __gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<SwTextGlyphsKey const, SwTextGlyphsData> >, std::__debug::map<SwTextGlyphsKey, SwTextGlyphsData, std::less<SwTextGlyphsKey>, std::allocator<std::pair<SwTextGlyphsKey const, SwTextGlyphsData> > >, std::bidirectional_iterator_tag>) at sw/source/core/txtnode/fntcache.cxx:233:33 > #9 in SwFntObj::GetCachedSalLayoutGlyphs(SwTextGlyphsKey const&) at sw/source/core/txtnode/fntcache.cxx:257:12 > #10 in SwFont::GetTextBreak(SwDrawTextInfo const&, long) at sw/source/core/txtnode/fntcache.cxx:2551:58 > #11 in SwTextSizeInfo::GetTextBreak(long, o3tl::strong_int<int, Tag_TextFrameIndex>, unsigned short, vcl::TextLayoutCache const*) const at sw/source/core/text/inftxt.cxx:450:20 > #12 in SwTextGuess::Guess(SwTextPortion const&, SwTextFormatInfo&, unsigned short) at sw/source/core/text/guess.cxx:205:26 > #13 in SwTextPortion::Format_(SwTextFormatInfo&) at sw/source/core/text/portxt.cxx:305:32 > #14 in SwTextPortion::Format(SwTextFormatInfo&) at sw/source/core/text/portxt.cxx:456:12 > #15 in SwLineLayout::Format(SwTextFormatInfo&) at sw/source/core/text/porlay.cxx:260:31 (where in frame #4 GenericSalLayout::LayoutText, pHbBuffer->props.direction is HB_DIRECTION_RTL, in case that is relevant). It is unclear to me whether it is sufficient to only change hb_graphite2_cluster_t::advance from signed to unsigned int, as there are other unsigned int variables (like curradv in _hb_graphite2_shape) whose value depend on hb_graphite2_cluster_t::advance, and which thus might also become negative. But unlike the float -> unsigned int conversion that UBSan warned about here (where gr_slot_origin_X() and xscale are float), those are signed int -> unsigned int conversions that do not cause undefined behavior. At least, with this change, the above --convert-to pdf and a full `make check screenshot` succeeded for me under without further UBSan warnings. (For the version of HarfBuzz optionally built as part of the LibreOffice build, this has been addressed with <https://git.libreoffice.org/core/+/6e53e03f752c2f85283c4d47efaaf0683299783c%5E!/> "external/harfbuzz: hb_graphite2_cluster_t::advance can apparently be negative.")
Garret Rieger dbfd2bf3 2022-06-30T23:04:35 minor.
Garret Rieger d6f579e9 2022-06-30T22:22:03 [subset] add tests that exercise script filtering.
Garret Rieger 79bdcbef 2022-06-30T22:20:32 [subset] Fix GDEF version downgrade logic.
Garret Rieger 587969af 2022-06-30T21:37:42 [subset] Drop scripts that are not in the layout_scripts list.
Garret Rieger 900476c6 2022-06-30T19:21:23 Move GSUB.hh GPOS.hh back into the GPOS/GSUB sub directories.
Garret Rieger 5fdae684 2022-06-29T23:52:08 [reorg] Move GSUB.hh up one level and change GSUB namespace to GSUB_impl.
Garret Rieger 38e81f2b 2022-06-30T21:09:11 [subset] Add --layout-scripts command line flag.
Garret Rieger 70e32a66 2022-06-30T21:00:48 [subset] Add layout_scripts to subset input.
Behdad Esfahbod 13c499cb 2022-06-30T14:25:09 [hvar] Minor internal rewiring Not passing font to functions makes it more clear that they don't scale values.
Garret Rieger 41d2c335 2022-06-30T20:24:42 [subset] Apply script list filter when doing layout collection.
Garret Rieger e5c8a2f4 2022-06-30T20:14:29 [subset] Pass plan through to collect methods. Allows to more easily access the filtering sets as they are added and enables propagating errors to the plan.
Behdad Esfahbod aba4a495 2022-06-30T14:13:44 [ot-font] Disable VORG variation code in HB_NO_VAR
Behdad Esfahbod d5921b37 2022-06-30T14:08:29 [tt-font] Apply VVAR.vOrg variation to VORG origin Mostly fixes https://github.com/harfbuzz/harfbuzz/issues/1694
Behdad Esfahbod eee29f73 2022-06-30T14:03:07 [hmtx] Specialize var_table
Behdad Esfahbod 031fd20a 2022-06-30T13:50:18 [perf] Update README
Garret Rieger 1bf051ef 2022-06-30T20:03:33 [subset] refactor feature tag filtering so it can be used for scripts as well.
Khaled Hosny f6f93c30 2022-06-30T08:50:59 [docs] Fix warning These comment blocks don’t use gtk-doc syntax.
Khaled Hosny d9c5292b 2022-06-30T08:47:49 [docs] Remove duplicate or non existing symbols
Khaled Hosny 98e90cc6 2022-06-30T08:43:57 [docs] Reduce warnings Use markdown syntax for inline code blocks instead of %true, %false, and %NULL.
Behdad Esfahbod c69ec6f5 2022-06-29T16:32:30 [kern2] Fix sanitize issue on 32bit systems Fixes https://github.com/harfbuzz/harfbuzz/issues/3483
Frédéric Wang 32e542d6 2022-06-29T06:45:38 try & fix build errors on the bot
Frédéric Wang 03d23767 2022-06-29T06:21:31 [math] Improve fuzzing coverage Extend testing to cover parts that are missing according to the recent oss-fuzz-coverage report: - Retriving all constants from MathConstants. - Retrieving entries from MathKern, MathGlyphPartRecord and MathGlyphAssembly. - Retrieving italic correction from MathGlyphAssembly. - Choosing between horizontal/vertical offset in MathVariants. https://storage.googleapis.com/oss-fuzz-coverage/harfbuzz/reports/20220627/linux/src/harfbuzz/src/hb-ot-math-table.hh.html https://github.com/harfbuzz/harfbuzz/issues/3688
Khaled Hosny 22835dea 2022-06-29T07:49:28 [docs] Add missing symbol
Khaled Hosny 34d3d49e 2022-06-29T07:46:21 [docs] Fix Since annotation
Khaled Hosny 096aaa62 2022-06-29T07:30:05 4.4.1
Khaled Hosny 4d1d7aec 2022-06-29T07:29:39 [docs] Add missing 4.4.0 index
Behdad Esfahbod 050f1690 2022-06-28T18:52:27 [GPOS/kerx] Call into impl namespace from kerx
Garret Rieger 910a137f 2022-06-29T00:05:35 [reorg] Fix propagate_attachment_offsets definition.
Garret Rieger 3fbf2dec 2022-06-28T23:55:32 [reorg] Move OT::Layout::GPOS_impl::GPOS to OT::Layout::GPOS.
Garret Rieger 88ef3c5a 2022-06-28T23:26:49 [reorg] Change OT::Layout::GPOS to OT::Layout::GPOS_impl.
Garret Rieger 49ddf069 2022-06-28T23:15:07 [reorg] Move GPOS reverse_cursive_minor_offset implementation into new directory layout.
Garret Rieger 74f45f7c 2022-06-24T23:14:30 [reorg] Move remaining GPOS lookup types to new directory.
Garret Rieger 197d9a5c 2022-06-24T22:36:14 [reorg] Move more GPOS lookups to new directory.
Garret Rieger c7307ca0 2022-06-24T22:01:02 [reorg] Begin moving GPOS into the new directory layout.
Khaled Hosny 7b0d8d9d 2022-06-29T00:34:09 [meson] Remove ttf-parser wrap We don’t have a ttf-parser dependency anymore.
Behdad Esfahbod 9909d11f 2022-06-28T15:59:40 [indic generator] Fix regression Fixes https://github.com/harfbuzz/harfbuzz/issues/3690
Behdad Esfahbod 4499ae02 2022-06-28T15:43:57 [coretext] Fix positioning of out-of-order glyphs Unfortunately this now generates negative advances. To be fixed...
Behdad Esfahbod 58d2e930 2022-06-28T15:38:58 [coretext] Fix up clusters only if needed
Behdad Esfahbod eaba5e74 2022-06-28T13:47:49 [directwrite] Simplify
Behdad Esfahbod 33e3bf2d 2022-06-28T13:46:04 [font] Drop caches on variation changes
Behdad Esfahbod c90130e6 2022-06-28T13:30:44 [coretext] Remove old hack now that font layer takes care... of invalidating font data when font settings change.
Behdad Esfahbod c1c78ade 2022-06-28T13:19:12 [font] When font changes, drop font shaper data https://github.com/harfbuzz/harfbuzz/issues/3683#issuecomment-1168016509
Behdad Esfahbod 34c6c019 2022-06-27T20:26:19 [glyf] Fix byterange check again
Behdad Esfahbod 20572f91 2022-06-27T20:22:09 [glyf] Move read_flags into a function
David Corbett 7b0fc0be 2022-06-27T21:18:36 [test] Test the reordering of U+0E33 and U+0EB3
Behdad Esfahbod 3c34b9ec 2022-06-27T19:45:58 [mingw2] Turn optimization flag on
Behdad Esfahbod 31e985d7 2022-06-27T16:32:02 [buffer] Likely that not messaging
Behdad Esfahbod 4be074e2 2022-06-27T16:12:42 [gvar] Whitespace
Behdad Esfahbod a9664784 2022-06-27T15:41:02 [gvar] Optimize apply_deltas_to_points
Behdad Esfahbod e9af9062 2022-06-27T15:38:42 [gvar] Optimize unpack_deltas
Behdad Esfahbod 573e7728 2022-06-27T15:35:28 [gvar] Optimize unpack_deltas
Behdad Esfahbod 698f5146 2022-06-27T15:30:19 [gvar] Share vector allocation across delta-sets
Behdad Esfahbod 39e280c2 2022-06-27T15:25:50 [gvar] Handle a couple of error conditions
Behdad Esfahbod 5be6e5dd 2022-06-27T15:22:16 [gvar] Rewrite linear interpolation
Behdad Esfahbod 57519b53 2022-06-27T15:18:56 [gvar] Use pointer-to-member instead of function
Behdad Esfahbod ab15fe08 2022-06-27T15:13:10 [gvar] Handle a couple of error conditions
Behdad Esfahbod b7e9e878 2022-06-27T15:08:51 [gvar] Optimize deltas and points loading
Behdad Esfahbod 6e72c2e3 2022-06-27T14:02:15 [glyf] Add an assertion
Behdad Esfahbod 5da341ce 2022-06-27T13:29:22 [map] Another try at hiding minus1 To fix https://github.com/harfbuzz/harfbuzz/issues/3684
Behdad Esfahbod c72d3104 2022-06-27T13:31:05 [map] Return const reference in operator[]
Behdad Esfahbod 69d53f3e 2022-06-27T13:17:10 [map] Make default_value() inline See if it make fix https://github.com/harfbuzz/harfbuzz/issues/3684
Behdad Esfahbod 3a0e27e7 2022-06-27T13:07:39 [glyf] Move comment
Behdad Esfahbod d0836dee 2022-06-27T13:05:58 [glyf] Minor typo change
Behdad Esfahbod 5cca25e5 2022-06-27T13:03:06 [glyf] Accumulate points as int Everything is int at this stage. Doesn't seem to matter for performance though.
Behdad Esfahbod d6f60b3c 2022-06-27T13:00:08 [glyf] Minor optimization
Behdad Esfahbod b30a3dcb 2022-06-27T12:56:21 [glyf] Another bounds check Very unlikely that is needed but technically possible.
Behdad Esfahbod 2e9dbdcb 2022-06-27T12:55:13 [glyf] Protect against an unlikely overflow
Khaled Hosny 8537d681 2022-06-27T20:51:16 4.4.0
Behdad Esfahbod f1fb8c44 2022-06-27T12:41:46 [glyf] Optimize Glyph layout
Behdad Esfahbod 34e3f561 2022-06-27T12:39:35 [glyf] Fix a bug I introduced recently Pass gid to Glyph in trim_padding codepath.
Behdad Esfahbod 97cbc2d4 2022-06-27T12:37:11 [gvar] Remove condition that font num_coords should match gvar's
Behdad Esfahbod 19cbfb9c 2022-06-27T12:32:18 [glyf] Relax a condition that font num_coords be equal to gvar's gvar itself still checks the same.
Behdad Esfahbod d5cfbaa0 2022-06-27T12:24:20 [glyf] Optimize composite points loading