|
7b51bc95
|
2022-07-06T12:58:15
|
|
[cplusplus] Fix build on GCC < 7
|
|
386e1bba
|
2022-07-05T12:46:05
|
|
Merge pull request #3699 from googlefonts/filter_scripts
[subset] Add support for --layout-scripts
|
|
30309ec8
|
2022-07-05T18:33:19
|
|
[subset] add null element in _filter_tag_list.
|
|
216cf594
|
2022-07-05T17:49:12
|
|
[subset] Allocate space for null entry in script/feature list.
|
|
d9ab805e
|
2022-07-05T11:45:10
|
|
Fix LookupFlag negation
Fixes https://github.com/harfbuzz/harfbuzz/issues/3703
|
|
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.
|
|
115e1a03
|
2022-07-03T14:45:12
|
|
[glyf] Relax condition for matching number of coords
|
|
800760c5
|
2022-07-03T13:21:06
|
|
[glyf] Rename get_extents functions for clarity
|
|
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.
|
|
f46ddeba
|
2022-07-03T13:12:49
|
|
[hmtx/glyf] Rename side-bearing functions for clarity
|
|
23435d52
|
2022-07-03T13:04:27
|
|
[hvar] Rename advance function for clarity
|
|
9f974cae
|
2022-07-03T13:03:12
|
|
[hvar] Rename lsb function for clarity
|
|
ab5ce643
|
2022-07-03T13:00:22
|
|
[VVAR] Rename vorg function for clarity
|
|
b2d60cbd
|
2022-07-03T12:56:48
|
|
[glyf] Rename advance functions for clarity
|
|
35c00c12
|
2022-07-03T12:54:17
|
|
[hmtx] Rename advance functions for clarity
|
|
6b82d4fa
|
2022-07-03T12:45:27
|
|
[glyf] Make an optional argument non-optional
|
|
3ef59080
|
2022-07-03T12:44:24
|
|
[glyf] Internal flip a variable
|
|
b07fa2bb
|
2022-07-02T13:43:23
|
|
[ot-font] Respect VORG even if it has no variations
|
|
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
|
|
78b4f398
|
2022-07-02T16:37:26
|
|
[glyf] Fix confusion between scaled vs unscaled lsb
Was always broken.
|
|
6665881c
|
2022-07-02T11:21:12
|
|
[glyf] Change side-bearing rounding
|
|
0a295fcd
|
2022-07-01T17:16:24
|
|
[var] Fix DeltaSetIndexMapFormat1
Fixes https://github.com/harfbuzz/harfbuzz/issues/3692
|
|
351cccdb
|
2022-07-01T16:52:49
|
|
[buffer-deserialize] Deserialize glyph flags
Fixes https://github.com/harfbuzz/harfbuzz/issues/1482
|
|
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.
|
|
534b0911
|
2022-07-01T16:20:31
|
|
[aat-layout] Add an unlikely()
|
|
b8c7c0a0
|
2022-07-01T12:11:15
|
|
[fuzzer] In 50% of runs don't fail the allocator
|
|
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.")
|
|
dbfd2bf3
|
2022-06-30T23:04:35
|
|
minor.
|
|
d6f579e9
|
2022-06-30T22:22:03
|
|
[subset] add tests that exercise script filtering.
|
|
79bdcbef
|
2022-06-30T22:20:32
|
|
[subset] Fix GDEF version downgrade logic.
|
|
587969af
|
2022-06-30T21:37:42
|
|
[subset] Drop scripts that are not in the layout_scripts list.
|
|
900476c6
|
2022-06-30T19:21:23
|
|
Move GSUB.hh GPOS.hh back into the GPOS/GSUB sub directories.
|
|
5fdae684
|
2022-06-29T23:52:08
|
|
[reorg] Move GSUB.hh up one level and change GSUB namespace to GSUB_impl.
|
|
38e81f2b
|
2022-06-30T21:09:11
|
|
[subset] Add --layout-scripts command line flag.
|
|
70e32a66
|
2022-06-30T21:00:48
|
|
[subset] Add layout_scripts to subset input.
|
|
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.
|
|
41d2c335
|
2022-06-30T20:24:42
|
|
[subset] Apply script list filter when doing layout collection.
|
|
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.
|
|
aba4a495
|
2022-06-30T14:13:44
|
|
[ot-font] Disable VORG variation code in HB_NO_VAR
|
|
d5921b37
|
2022-06-30T14:08:29
|
|
[tt-font] Apply VVAR.vOrg variation to VORG origin
Mostly fixes https://github.com/harfbuzz/harfbuzz/issues/1694
|
|
eee29f73
|
2022-06-30T14:03:07
|
|
[hmtx] Specialize var_table
|
|
031fd20a
|
2022-06-30T13:50:18
|
|
[perf] Update README
|
|
1bf051ef
|
2022-06-30T20:03:33
|
|
[subset] refactor feature tag filtering so it can be used for scripts as well.
|
|
f6f93c30
|
2022-06-30T08:50:59
|
|
[docs] Fix warning
These comment blocks don’t use gtk-doc syntax.
|
|
d9c5292b
|
2022-06-30T08:47:49
|
|
[docs] Remove duplicate or non existing symbols
|
|
98e90cc6
|
2022-06-30T08:43:57
|
|
[docs] Reduce warnings
Use markdown syntax for inline code blocks instead of %true, %false, and
%NULL.
|
|
c69ec6f5
|
2022-06-29T16:32:30
|
|
[kern2] Fix sanitize issue on 32bit systems
Fixes https://github.com/harfbuzz/harfbuzz/issues/3483
|
|
32e542d6
|
2022-06-29T06:45:38
|
|
try & fix build errors on the bot
|
|
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
|
|
22835dea
|
2022-06-29T07:49:28
|
|
[docs] Add missing symbol
|
|
34d3d49e
|
2022-06-29T07:46:21
|
|
[docs] Fix Since annotation
|
|
096aaa62
|
2022-06-29T07:30:05
|
|
4.4.1
|
|
4d1d7aec
|
2022-06-29T07:29:39
|
|
[docs] Add missing 4.4.0 index
|
|
050f1690
|
2022-06-28T18:52:27
|
|
[GPOS/kerx] Call into impl namespace from kerx
|
|
910a137f
|
2022-06-29T00:05:35
|
|
[reorg] Fix propagate_attachment_offsets definition.
|
|
3fbf2dec
|
2022-06-28T23:55:32
|
|
[reorg] Move OT::Layout::GPOS_impl::GPOS to OT::Layout::GPOS.
|
|
88ef3c5a
|
2022-06-28T23:26:49
|
|
[reorg] Change OT::Layout::GPOS to OT::Layout::GPOS_impl.
|
|
49ddf069
|
2022-06-28T23:15:07
|
|
[reorg] Move GPOS reverse_cursive_minor_offset implementation into new directory layout.
|
|
74f45f7c
|
2022-06-24T23:14:30
|
|
[reorg] Move remaining GPOS lookup types to new directory.
|
|
197d9a5c
|
2022-06-24T22:36:14
|
|
[reorg] Move more GPOS lookups to new directory.
|
|
c7307ca0
|
2022-06-24T22:01:02
|
|
[reorg] Begin moving GPOS into the new directory layout.
|
|
7b0d8d9d
|
2022-06-29T00:34:09
|
|
[meson] Remove ttf-parser wrap
We don’t have a ttf-parser dependency anymore.
|
|
9909d11f
|
2022-06-28T15:59:40
|
|
[indic generator] Fix regression
Fixes https://github.com/harfbuzz/harfbuzz/issues/3690
|
|
4499ae02
|
2022-06-28T15:43:57
|
|
[coretext] Fix positioning of out-of-order glyphs
Unfortunately this now generates negative advances. To be fixed...
|
|
58d2e930
|
2022-06-28T15:38:58
|
|
[coretext] Fix up clusters only if needed
|
|
eaba5e74
|
2022-06-28T13:47:49
|
|
[directwrite] Simplify
|
|
33e3bf2d
|
2022-06-28T13:46:04
|
|
[font] Drop caches on variation changes
|
|
c90130e6
|
2022-06-28T13:30:44
|
|
[coretext] Remove old hack now that font layer takes care...
of invalidating font data when font settings change.
|
|
c1c78ade
|
2022-06-28T13:19:12
|
|
[font] When font changes, drop font shaper data
https://github.com/harfbuzz/harfbuzz/issues/3683#issuecomment-1168016509
|
|
34c6c019
|
2022-06-27T20:26:19
|
|
[glyf] Fix byterange check again
|
|
20572f91
|
2022-06-27T20:22:09
|
|
[glyf] Move read_flags into a function
|
|
7b0fc0be
|
2022-06-27T21:18:36
|
|
[test] Test the reordering of U+0E33 and U+0EB3
|
|
3c34b9ec
|
2022-06-27T19:45:58
|
|
[mingw2] Turn optimization flag on
|
|
31e985d7
|
2022-06-27T16:32:02
|
|
[buffer] Likely that not messaging
|
|
4be074e2
|
2022-06-27T16:12:42
|
|
[gvar] Whitespace
|
|
a9664784
|
2022-06-27T15:41:02
|
|
[gvar] Optimize apply_deltas_to_points
|
|
e9af9062
|
2022-06-27T15:38:42
|
|
[gvar] Optimize unpack_deltas
|
|
573e7728
|
2022-06-27T15:35:28
|
|
[gvar] Optimize unpack_deltas
|
|
698f5146
|
2022-06-27T15:30:19
|
|
[gvar] Share vector allocation across delta-sets
|
|
39e280c2
|
2022-06-27T15:25:50
|
|
[gvar] Handle a couple of error conditions
|
|
5be6e5dd
|
2022-06-27T15:22:16
|
|
[gvar] Rewrite linear interpolation
|
|
57519b53
|
2022-06-27T15:18:56
|
|
[gvar] Use pointer-to-member instead of function
|
|
ab15fe08
|
2022-06-27T15:13:10
|
|
[gvar] Handle a couple of error conditions
|
|
b7e9e878
|
2022-06-27T15:08:51
|
|
[gvar] Optimize deltas and points loading
|
|
6e72c2e3
|
2022-06-27T14:02:15
|
|
[glyf] Add an assertion
|
|
5da341ce
|
2022-06-27T13:29:22
|
|
[map] Another try at hiding minus1
To fix https://github.com/harfbuzz/harfbuzz/issues/3684
|
|
c72d3104
|
2022-06-27T13:31:05
|
|
[map] Return const reference in operator[]
|
|
69d53f3e
|
2022-06-27T13:17:10
|
|
[map] Make default_value() inline
See if it make fix https://github.com/harfbuzz/harfbuzz/issues/3684
|
|
3a0e27e7
|
2022-06-27T13:07:39
|
|
[glyf] Move comment
|
|
d0836dee
|
2022-06-27T13:05:58
|
|
[glyf] Minor typo change
|
|
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.
|
|
d6f60b3c
|
2022-06-27T13:00:08
|
|
[glyf] Minor optimization
|
|
b30a3dcb
|
2022-06-27T12:56:21
|
|
[glyf] Another bounds check
Very unlikely that is needed but technically possible.
|
|
2e9dbdcb
|
2022-06-27T12:55:13
|
|
[glyf] Protect against an unlikely overflow
|
|
8537d681
|
2022-06-27T20:51:16
|
|
4.4.0
|
|
f1fb8c44
|
2022-06-27T12:41:46
|
|
[glyf] Optimize Glyph layout
|
|
34e3f561
|
2022-06-27T12:39:35
|
|
[glyf] Fix a bug I introduced recently
Pass gid to Glyph in trim_padding codepath.
|
|
97cbc2d4
|
2022-06-27T12:37:11
|
|
[gvar] Remove condition that font num_coords should match gvar's
|
|
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.
|
|
d5cfbaa0
|
2022-06-27T12:24:20
|
|
[glyf] Optimize composite points loading
|