src


Log

Author Commit Date CI Message
Garret Rieger 6fad6b41 2022-07-06T19:18:27 [repacker] add tests for special casing of 24bit offsets.
Garret Rieger b4f561db 2022-07-06T18:49:23 [subset] Add some comments to find_space_roots/find_32_bit_roots methods.
Garret Rieger 401066bf 2022-07-06T18:44:40 [subset] Prepare the repacker for handling 24bit offsets in GSUB/GPOS. The boring expansion (https://github.com/be-fonts/boring-expansion-spec) plans to introduce 24bit offsets into GSUB/GPOS. This changes the repacker to treat 24 bit offsets similar to 32 bit offsets and assign the top level 24 bit offsets into spaces to improve packing.
Behdad Esfahbod c091d029 2022-07-06T10:51:04 Merge pull request #3706 from lb90/dwrite-dll Load DirectWrite dynamically
Luca Bacci 1abc14b4 2022-07-06T17:52:29 Do not link with the DWrite lib It's loaded dynamically now
Luca Bacci c22acfa8 2022-07-06T13:50:47 Fix function pointer typedef
Kleis Auke Wolthuizen 79eb0f74 2022-07-06T13:29:55 [GSUB] Fix build on GCC < 7
Kleis Auke Wolthuizen 3238cb74 2022-07-06T13:18:14 [GPOS] Fix build on GCC < 7
Luca Bacci 3e881efb 2022-06-27T14:34:18 Revert "Revert "Revert "[hb-directwrite] Don't load dwrit.dll dynamically""" This reverts commit 361a438658dcddea29d7c8b9c68bf2bc88109bde.
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 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 b07fa2bb 2022-07-02T13:43:23 [ot-font] Respect VORG even if it has no variations
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()
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 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 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
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 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
Khaled Hosny 34d3d49e 2022-06-29T07:46:21 [docs] Fix Since annotation
Khaled Hosny 096aaa62 2022-06-29T07:30:05 4.4.1
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.
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
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
Behdad Esfahbod 32dc0641 2022-06-27T12:22:06 [glyf] Remove an unnecessary condition
Behdad Esfahbod 95bfa091 2022-06-27T12:09:42 [gvar] Optimize translate()
Behdad Esfahbod 9f067582 2022-06-27T12:08:47 [gvar] Optimize transform()