|
db96c7f6
|
2020-08-10T08:23:21
|
|
[glyf] protect CompositeGlyph fields
Introduce methods instead
|
|
e5fe363a
|
2020-08-10T07:39:36
|
|
[glyf] Minor, don't pass accelerator_t to points_aggregator_t
No need to pass it to aggregator itself
|
|
2b9927f7
|
2020-08-10T06:26:21
|
|
[glyf] minor
No need to pass glyph_for_gid as a lambda now that we are passing the accelerator itself
|
|
fce64a40
|
2020-08-08T14:04:54
|
|
Minor
|
|
ffe06c8f
|
2020-08-08T13:17:34
|
|
[glyf] Guard all the public APIs against null pool runs
Fixes https://crbug.com/oss-fuzz/24575 and https://crbug.com/oss-fuzz/24737
|
|
01ac32aa
|
2020-08-02T11:35:55
|
|
Remove autotools build support
|
|
1f519c25
|
2020-08-07T01:21:19
|
|
[glyf] Optimize retrieval of hmtx/vmtx/gvar
This should make glyf/gvar faster as makes it to invoke less table wrapper atomic operations and things.
$ meson build -Dexperimental_api=true --buildtype=release && ninja -Cbuild && build/perf/perf "--benchmark_filter=glyf.*- ot -"
Before:
extents/glyf - ot - SourceSerifVariable 46091 ns 46036 ns 16173
extents/glyf/vf - ot - SourceSerifVariable 4160142 ns 4154913 ns 174
extents/glyf - ot - Comfortaa 25754 ns 25726 ns 27030
extents/glyf/vf - ot - Comfortaa 2627804 ns 2624596 ns 265
extents/glyf - ot - Roboto 33556 ns 33540 ns 18513
draw/glyf - ot - SourceSerifVariable 2716848 ns 2715438 ns 256
draw/glyf/vf - ot - SourceSerifVariable 4602379 ns 4598907 ns 151
draw/glyf - ot - Comfortaa 1659364 ns 1658142 ns 417
draw/glyf/vf - ot - Comfortaa 2845100 ns 2842549 ns 246
draw/glyf - ot - Roboto 1571509 ns 1570060 ns 442
After:
extents/glyf - ot - SourceSerifVariable 34738 ns 34713 ns 21332
extents/glyf/vf - ot - SourceSerifVariable 3700510 ns 3698104 ns 187
extents/glyf - ot - Comfortaa 21604 ns 21595 ns 31907
extents/glyf/vf - ot - Comfortaa 2324787 ns 2323440 ns 296
extents/glyf - ot - Roboto 31259 ns 31246 ns 21814
draw/glyf - ot - SourceSerifVariable 2689230 ns 2687589 ns 260
draw/glyf/vf - ot - SourceSerifVariable 4625135 ns 4622036 ns 131
draw/glyf - ot - Comfortaa 1690336 ns 1689454 ns 402
draw/glyf/vf - ot - Comfortaa 2898748 ns 2897074 ns 241
draw/glyf - ot - Roboto 1570911 ns 1570138 ns 440
|
|
0907c102
|
2020-08-07T00:15:32
|
|
[gvar] minor
|
|
679fac87
|
2020-07-30T15:29:43
|
|
Skip hb_shape if buffer object is immutable
|
|
55c41f21
|
2020-08-06T23:37:43
|
|
[glyf] Clamp advance value result
Fixes a sanitizer complain https://circleci.com/gh/harfbuzz/harfbuzz/150247 revealed by 02d1ec1
|
|
02d1ec16
|
2020-08-06T22:18:35
|
|
[gvar] Don't fail on imprefect gvar
No need to fail even if gvar doesn't have that much glyphs
|
|
ec17b624
|
2020-08-06T20:16:11
|
|
[var] Apply variations on empty glyphs
It was ignoring empty glyphs for no good reason, this fixes it.
Fixes #2618
|
|
5cab55ca
|
2020-08-06T18:54:58
|
|
[gvar] minor
|
|
75efa893
|
2020-07-30T01:17:42
|
|
Remove cmake-config support of HarfBuzz
Reverts d38f37b2 as discussed in #2316
|
|
11bb8aa8
|
2020-08-02T00:47:21
|
|
[meson] limit check-libstdc++ check to 0.55
library(..., link_language: 'c') is introduced in 0.55 but we were relying on this anyway
assuming b_asneeded being true on meson.
#2614
|
|
9d3fbe05
|
2020-07-30T14:54:00
|
|
[meson] Add darwin versions to library()
We now have,
$ otool -L src/libharfbuzz.dylib
src/libharfbuzz.dylib:
@rpath/libharfbuzz.0.dylib (compatibility version 0.0.0, current version 0.0.0)
And with the change should we get
$ otool -L src/libharfbuzz.dylib
src/libharfbuzz.dylib:
@rpath/libharfbuzz.0.dylib (compatibility version 20700.0.0, current version 20700.0.0)
|
|
18ab8029
|
2020-07-31T14:40:49
|
|
[ENOMEM] check vector status in cmap subsetting.
|
|
06dbb6ac
|
2020-07-31T15:56:14
|
|
[ENOMEM] in GSUB ChainContext subsetting check maps for allocation errors.
|
|
fb147779
|
2020-07-31T14:00:38
|
|
[ENOMEM] Check result of vector resize in CBDT subsetting.
|
|
efd716de
|
2020-07-31T08:58:53
|
|
[cff] Check for scalars array resize result
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24504
|
|
040ed094
|
2020-07-30T15:14:02
|
|
[ENOMEM] popragate packed/packed_map errors to the serializer.
Will disable further modifications based on a bad state.
|
|
7f358a55
|
2020-07-30T13:57:30
|
|
[ENOMEM] unchecked resize in CFF2.
|
|
32f052b0
|
2020-07-30T13:45:04
|
|
[ENOMEM] Fix several instances of not checking resize in CFF.
|
|
4cbc7d61
|
2020-07-30T12:20:31
|
|
[ENOMEM] check for unset current in serializer->length().
|
|
15644ee6
|
2020-07-29T16:37:39
|
|
[ENOMEM] fix memory leak if allocation fails during pop_pack().
|
|
42237adf
|
2020-07-29T15:18:25
|
|
[ENOMEM] make serializer modification operations no-ops if it's in an error state.
|
|
d1f13014
|
2020-07-30T02:01:43
|
|
[icu] Remove support for versions older than 49
It just doesn't make sense anymore, https://github.com/harfbuzz/harfbuzz/commit/c9e5da8ded390b816613839214fe96137ca0a0a2#r41018112
|
|
0b74aaec
|
2020-07-30T01:47:30
|
|
[icu] Remove useless HB_UNUSED tags
As https://github.com/harfbuzz/harfbuzz/commit/c9e5da8ded390b816613839214fe96137ca0a0a2#r41018040
|
|
c9e5da8d
|
2020-07-30T00:53:40
|
|
[icu] Remove support of ICU versions before 42
ICU 42 is released in 2012, see also https://github.com/harfbuzz/harfbuzz/commit/44a3136ae6a28222922da13582bd2dfd3eb823c7#commitcomment-41016353
|
|
4ba8e3c6
|
2020-07-29T12:33:42
|
|
[ENOMEM] Fix failure to check calloc return.
Fixes https://oss-fuzz.com/testcase-detail/6246465148813312.
|
|
d307c24a
|
2020-07-29T12:23:37
|
|
[ENOMEM] check resize() return.
Fixes https://oss-fuzz.com/testcase-detail/5641892164009984.
|
|
58a5961c
|
2020-07-29T08:44:23
|
|
minor spacing tweak
|
|
07c43b8c
|
2020-07-29T08:42:52
|
|
minor spacing tweak
|
|
5a7cc7fd
|
2020-07-29T08:33:32
|
|
minor spacing tweak
|
|
48ad7459
|
2020-07-29T08:09:08
|
|
[ENOMEM] Fix buffer's content check logic
So now rest of shape fuzzer also can be enabled.
Fixes #2571
|
|
c33e8006
|
2020-07-14T19:29:58
|
|
[fuzz] Implement failing allocator
|
|
44a3136a
|
2020-07-29T07:03:44
|
|
[glib] Default to glib's script type handling
2.29.14 is almost released a decade ago, no need to support archaic glib versions.
|
|
dae32b4f
|
2020-07-28T18:31:46
|
|
[subset] bail out of subsetting if plan allocation fails.
|
|
a01c7a38
|
2020-07-25T12:27:31
|
|
2.7.0
|
|
b32f2e8b
|
2020-07-23T11:48:19
|
|
Remove unused code from the Khmer shaper.
|
|
46ec6db9
|
2020-07-22T17:30:48
|
|
minor
|
|
83c44f69
|
2020-07-20T17:35:10
|
|
[tests] fix PGO build testing
Adds 'mangle_path' to IGNORED_SYMBOLS
|
|
d0e2addd
|
2020-07-18T22:14:52
|
|
minor
|
|
7e3edfa4
|
2020-07-18T19:03:36
|
|
minor
|
|
8e5bc535
|
2020-07-15T18:54:52
|
|
[subset] call collect_mapping only when --gids option is used.
collect_mapping is time consuming as it iterates all codepoints in all
cmap subtables, only trigger it when necessary
|
|
7c433ffd
|
2020-07-15T09:38:12
|
|
Add HB_CUSTOM_MALLOC definition
So one can use just HB_CUSTOM_MALLOC instead need for define each of hb_*alloc_impl
|
|
60959b08
|
2020-07-14T20:28:06
|
|
[meson] execute find_program('gen-ragel-artifacts.py') only once
should rename the script also
|
|
5c8e1bd2
|
2020-07-14T17:47:10
|
|
[meson] Don't allow introspection on static library
|
|
9566904c
|
2020-07-14T15:17:17
|
|
[morx] minor, mark with unlikely
at least just to show this is the unusual path
|
|
11d583a9
|
2020-07-14T06:23:06
|
|
[aat] Consume glyph insertion from buffer's max_ops (#2223)
Glyph insertion is an expensive operation and we like to have it limited
based on buffer's input size which is handled by buffer's max_ops.
clusterfuzz-testcase-minimized-harfbuzz_fuzzer-5754958982021120:
Before the change: 0.67s user 0.00s system 99% cpu 0.674 total
After the change: 0.02s user 0.00s system 98% cpu 0.024 total
Which takes much longer on valgrind and tsan bots.
|
|
6937092a
|
2020-07-13T21:32:15
|
|
[py] apply lgtm.com python suggestions
|
|
2a182128
|
2020-07-13T20:41:13
|
|
[py] minor, comment buffer_add_utf8 call
mainly to apply lgtm suggestion, looks better also however,
some minor spacing is also applied.
|
|
cdf18e83
|
2020-07-13T20:07:51
|
|
[py] minor, remove unnecessary pass
discovered by lgtm
|
|
45d9e8d7
|
2020-07-13T19:25:53
|
|
[py] minor, remove unused import
|
|
1dfa3385
|
2020-07-12T09:24:03
|
|
[arabic] Remove stale comment
|
|
6a45df0a
|
2020-07-08T18:17:40
|
|
Fix -Wambiguous-reversed-operator warning
Fixes https://github.com/harfbuzz/harfbuzz/issues/2554
|
|
1e6027e2
|
2020-07-05T22:44:10
|
|
[aat] Correct array indexing when looking up actions in KerxSubTableFormat4 (#2539)
* [aat] Correct array indexing when looking up actions in KerxSubTableFormat4.
- For action_type 0 and 1, there are 2 values per action record; for action_type 2, there are 4. So we need to account for these factors when indexing into the ankrData array.
Fixes https://github.com/harfbuzz/harfbuzz/issues/2531.
|
|
122a2897
|
2020-07-05T22:45:11
|
|
[aat] Remove lcar support
Very low use, only two distinct font files, Apple Chancery.ttf and Hoefler Text.ttc
have it so it really doesn't worth the size addition and so, but one may argue that
whole ligature caret is low use but guess we better to encourage GDEF one anyway.
|
|
a3b9b94b
|
2020-07-06T00:05:21
|
|
[style] Remove fdsc support (#2541)
It isn't exposed yet and low use between Apple fonts,
32 fdsc table vs 767 OS/2 tables, even Apple doesn't
support it anymore per Ned.
|
|
a6fb8ce9
|
2020-07-04T23:43:21
|
|
Minor, fix -Wrange-loop-analysis warnings
Fixing these complains raised by newer versions of clang,
./hb-ot-layout-common.hh:1720:53: error: loop variable 'gid_klass_pair' is always a copy because the range of type 'hb_map_iter_t<hb_sorted_array_t<OT::HBGlyphID>, (lambda at ./hb-ot-layout-common.hh:1672:29), hb_function_sortedness_t::RETAINS_SORTING, nullptr>' does not return a reference [-Werror,-Wrange-loop-analysis]
for (const hb_pair_t<hb_codepoint_t, unsigned>& gid_klass_pair : + it)
And
./hb-ot-color-colr-table.hh:177:44: error: loop variable '_' is always a copy because the range of type 'hb_map_iter_t<hb_filter_iter_t<hb_map_iter_t<hb_range_iter_t<unsigned int, unsigned int>, (lambda at ./hb-ot-color-colr-table.hh:209:31), hb_function_sortedness_t::RETAINS_SORTING, nullptr>, (anonymous struct at ./hb-algs.hh:331:1) &, (anonymous struct at ./hb-algs.hh:51:1) &, nullptr>, (anonymous struct at ./hb-algs.hh:338:1) &, hb_function_sortedness_t::RETAINS_SORTING, nullptr>' does not return a reference [-Werror,-Wrange-loop-analysis]
for (const hb_item_type<BaseIterator>& _ : + base_it.iter ())
|
|
44444822
|
2020-07-02T17:46:56
|
|
meson: Pin harfbuzz in .pc files to the built version
This ensures that we link -subset, -icu and -gobject with a matching
version of the main library.
|
|
3adcf398
|
2020-07-02T16:41:22
|
|
meson: Make Requires in .pc files match autotools
Libreoffice tries to use only harfbuzz-icu.pc and assumes this includes
-lharfbuzz.
|
|
6a2b0ba7
|
2020-07-04T14:45:15
|
|
[py] minor, replace exit with sys.exit
|
|
a07672d3
|
2020-07-04T14:12:55
|
|
[py] minor, replace os.environ.get with os.getenv
|
|
359dbc97
|
2020-07-04T12:28:06
|
|
[meson] Use the recommended way to generate harfbuzz.cc
As https://github.com/harfbuzz/harfbuzz/pull/2532
|
|
a7e82e4f
|
2020-07-04T12:04:41
|
|
[meson] use the recommended way to generate hb-version.h
As https://github.com/harfbuzz/harfbuzz/pull/2532
|
|
404ecc25
|
2020-07-04T03:13:32
|
|
[meson] use basename in check scripts now that meson passes dir also
|
|
785a9a8f
|
2020-07-04T02:08:30
|
|
[meson] use the recommended way to generate ragel headers
As described in https://github.com/mesonbuild/meson/issues/7156#issuecomment-629622827
|
|
5c07c291
|
2020-07-04T04:33:46
|
|
[make] use sed the way autotools used to generate hb-version.h
Left from 1853f84 and now exactly is like 4fc6189a329c
|
|
63322513
|
2020-07-04T03:34:58
|
|
[make] Revert the way harfbuzz.cc and hb-version.h are generated
Partially reverts 4fc6189
|
|
1853f84a
|
2020-07-03T15:14:10
|
|
[py] overwrite harfbuzz.cc only when there is a needed change
|
|
82c6ddb9
|
2020-07-03T15:09:10
|
|
[py] remove not needed imports
|
|
42d039cc
|
2020-07-03T04:32:32
|
|
[meson] minor
|
|
f2a80ab2
|
2020-07-03T04:28:08
|
|
[meson] use null_dep idiom
|
|
d5439232
|
2020-07-02T01:30:24
|
|
[fvar] minor
|
|
40ec187d
|
2020-04-24T14:01:07
|
|
win32: Cleanup PARTITION handling
Use the WINAPI_PARTITION macro to filter desktop/app flavors.
We use a negated desktop check because the default (for mingw-w64 at
least) is to allow all API by combining desktop + app partitions.
This causes build failures if we were to filter using
WINAPI_PARTITION(WINAPI_FAMILY_APP) because it would always be true, but
those API also require Windows 8 or later, while we only require Vista
Fixes warnings like
../src/hb-blob.cc:572:47: warning: 'WINAPI_FAMILY_PC_APP' is not defined, evaluates to 0 [-Wundef]
#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP)
^
../src/hb-blob.cc:572:86: warning: 'WINAPI_FAMILY_PHONE_APP' is not defined, evaluates to 0 [-Wundef]
#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP)
|
|
ea8e7841
|
2020-06-30T12:54:29
|
|
[fvar] Improve naming
|
|
5de07b8a
|
2020-06-30T11:08:42
|
|
[fvar] Move normalize logic where it is actually filled
|
|
0f8dda2c
|
2020-06-30T10:53:12
|
|
[fvar] Move shared axis filling values into a new method
|
|
98c42b3b
|
2020-06-30T10:48:36
|
|
[fvar] Make AxisRecord fields protected
|
|
7ee3194f
|
2020-06-28T15:41:44
|
|
[meta] Remove wrong comment
|
|
26b9670d
|
2020-06-28T14:52:15
|
|
[ft] Better handle allocation failures
Fixes https://github.com/harfbuzz/harfbuzz/issues/2513
|
|
26111a11
|
2020-06-28T02:59:47
|
|
[dagger] Minor cleanup using hb_enumerate
|
|
08d57d9e
|
2020-06-28T13:13:25
|
|
Add hb_array_t::lfind
|
|
a7838407
|
2020-06-27T22:23:59
|
|
Always round up
Fixes https://github.com/harfbuzz/harfbuzz/issues/2496
|
|
2267da4e
|
2020-06-28T11:18:16
|
|
[ft] Do not deference ft_font if it is nullptr (#2502)
|
|
a373e161
|
2020-06-28T11:09:45
|
|
[ot-shape] Free shape plan maps upon error creating data (#2497)
|
|
dbf9896e
|
2020-06-28T10:57:34
|
|
[ft] Handle nullptr when destroying freetype font (#2494)
|
|
76ba619d
|
2020-06-23T20:49:43
|
|
Fix autotools's harfbuzz.cc build
How this works? gen-harfbuzzcc.py operates at its own source path (see its 7th line)
and that is reliable when used both on meson and autotools.
Just like 19ecabed, weirdly this didn't come up sooner, guess it has something
to do with timestamps. Fortunately whole harfbuzz.cc just doesn't matter for
packagers but we can tag a release only for this if needed.
|
|
12a9d572
|
2020-06-24T03:25:43
|
|
[face] Destroy blob if face closure can not be created (#2490)
This fixes issue #2489.
|
|
53b0a183
|
2020-06-22T18:04:01
|
|
Remove concept of stable/unstable from build tools
We never practiced the concept of stable and unstable releases, let's
remove the code and always use the stable scheme.
|
|
e4203c14
|
2020-06-22T05:03:27
|
|
2.6.8
|
|
e541fb47
|
2020-06-21T09:49:48
|
|
minor, replace single hb_apply daggers with foreach
|
|
8bca9a42
|
2020-06-21T09:18:12
|
|
[fvar] minor
|
|
82ec9ef2
|
2020-06-21T01:36:16
|
|
[fvar] minor simplification
|
|
4e37c48e
|
2020-06-20T23:57:45
|
|
[fvar] Remove get_axis_info and get_axis_deprecated
|
|
61c240f3
|
2020-06-20T13:24:32
|
|
[fvar] Push _axis_info fill logic deeper
|
|
47a0fbec
|
2020-06-21T02:34:59
|
|
[meson] Mark longer tests with slow
So one can skip them easily by `meson test -Cbuild --no-suite slow`
|
|
b2d0dba5
|
2020-06-20T12:07:42
|
|
[cpal] Port to dagger
|
|
25cf6874
|
2020-06-20T01:36:50
|
|
Use dagger in OffsetTable::get_table_tags (#2477)
|