Commit Graph

11248 Commits

Author SHA1 Message Date
Ebrahim Byagowi
1f519c2567
[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
2020-08-07 01:21:19 +04:30
Ebrahim Byagowi
0907c10214
[gvar] minor 2020-08-07 00:15:32 +04:30
Ebrahim Byagowi
679fac87df Skip hb_shape if buffer object is immutable 2020-08-06 23:47:35 +04:30
Ebrahim Byagowi
55c41f219f
[glyf] Clamp advance value result
Fixes a sanitizer complain https://circleci.com/gh/harfbuzz/harfbuzz/150247 revealed by 02d1ec1
2020-08-06 23:37:43 +04:30
Ebrahim Byagowi
02d1ec1658
[gvar] Don't fail on imprefect gvar
No need to fail even if gvar doesn't have that much glyphs
2020-08-06 22:18:35 +04:30
Ebrahim Byagowi
ec17b62457
[var] Apply variations on empty glyphs
It was ignoring empty glyphs for no good reason, this fixes it.

Fixes #2618
2020-08-06 20:16:11 +04:30
Ebrahim Byagowi
5cab55ca90
[gvar] minor 2020-08-06 18:54:58 +04:30
Ebrahim Byagowi
20e42a2128
[docs] minor on TESTING.md 2020-08-04 16:49:27 +04:30
Ebrahim Byagowi
5a2d216f30
[docs] meson related updates on install 2020-08-04 15:25:48 +04:30
Ebrahim Byagowi
34a0532092
[meson] minor note 2020-08-04 15:14:59 +04:30
Ebrahim Byagowi
cac483bf15
[docs] Update README.python.md with meson 2020-08-03 18:41:49 +04:30
Ebrahim Byagowi
75efa89343 Remove cmake-config support of HarfBuzz
Reverts d38f37b2 as discussed in #2316
2020-08-03 16:45:17 +04:30
Ebrahim Byagowi
97079a7c8f
[meson] Pass cpp_eh=none and cpp_rtti=false as default options
If we want to support a build with exception handling and RTTI
We should reflect that on library(..., link_language: 'c') also so for
now it is ok to just set it here to get MSVC support also and we
can remove hard coded flags later upon request.

One other concern over just relying on it is on when harfbuzz is used
as a subproject and the parent project hasn't provided the same options,
that should be resolved first I think.

Closes #2584
2020-08-02 12:34:21 +04:30
Ebrahim Byagowi
749e2754c8
[meson] remove useless note about -fvisibility-inlines-hidden
It was put there as current situation of autotools but msys2 is ok
with the flag, if something like is needed for other it can handled
as a local patch.
2020-08-02 12:21:51 +04:30
Ebrahim Byagowi
903d6a1f14
[perf] Enable ttf-parser build just with experimental_api
ttf-parser API is subject to breaking change and we are interested on its
hb-draw like API so let's hide it more.
2020-08-02 11:40:47 +04:30
Ebrahim Byagowi
cdb7d2b9bc
[docs] Update README.python.md with meson 2020-08-02 11:26:29 +04:30
Ebrahim Byagowi
9fd48de6f0
[docs] Adopt CONFIG.md with meson 2020-08-02 11:22:09 +04:30
Ebrahim Byagowi
b0a4860d34
[docs] Remove packagers related part
Covered by https://github.com/harfbuzz/harfbuzz/wiki/Notes-on-migration-to-meson
2020-08-02 11:15:15 +04:30
Ebrahim Byagowi
50151567c1 [ci] Disable Travis CI 2020-08-02 11:08:12 +04:30
Ebrahim Byagowi
11bb8aa83e
[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
2020-08-02 00:47:21 +04:30
Ebrahim Byagowi
9d3fbe0588 [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)
2020-08-02 00:34:29 +04:30
Garret Rieger
18ab8029d5 [ENOMEM] check vector status in cmap subsetting. 2020-08-02 00:30:17 +04:30
Garret Rieger
06dbb6acbb [ENOMEM] in GSUB ChainContext subsetting check maps for allocation errors. 2020-08-01 09:21:22 +04:30
Garret Rieger
fb1477795c [ENOMEM] Check result of vector resize in CBDT subsetting. 2020-08-01 09:20:52 +04:30
Ebrahim Byagowi
8586bad2bd
[ci] don't install rustc on linux-ci
https://github.com/harfbuzz/harfbuzz/pull/2610/checks?check_run_id=930572217
2020-07-31 09:28:51 +04:30
Ebrahim Byagowi
efd716de3f [cff] Check for scalars array resize result
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24504
2020-07-31 09:27:27 +04:30
Garret Rieger
040ed094ef [ENOMEM] popragate packed/packed_map errors to the serializer.
Will disable further modifications based on a bad state.
2020-07-31 08:39:26 +04:30
Garret Rieger
7f358a55f4 [ENOMEM] unchecked resize in CFF2. 2020-07-31 02:04:06 +04:30
Garret Rieger
32f052b033 [ENOMEM] Fix several instances of not checking resize in CFF. 2020-07-31 02:04:06 +04:30
Garret Rieger
4cbc7d61bc [ENOMEM] check for unset current in serializer->length(). 2020-07-31 02:04:06 +04:30
Ebrahim Byagowi
0d22fb38b9
Copy parts of README.md to README
Fixes https://github.com/harfbuzz/harfbuzz/issues/2591
2020-07-30 23:18:57 +04:30
Ebrahim Byagowi
cac3071183
[meson] minor, use null_dep one more place 2020-07-30 16:25:42 +04:30
Ebrahim Byagowi
4e572c9407
Remove cmake build files
As discussed in https://github.com/harfbuzz/harfbuzz/pull/2252
2020-07-30 16:19:15 +04:30
Ebrahim Byagowi
5f9ff04fb0 Add comparison against ttf-parser 2020-07-30 16:18:17 +04:30
Ebrahim Byagowi
87f4aada99
[docs] Update TESTING.md with meson 2020-07-30 15:20:17 +04:30
Garret Rieger
15644ee60e [ENOMEM] fix memory leak if allocation fails during pop_pack(). 2020-07-30 04:15:35 +04:30
Garret Rieger
42237adffc [ENOMEM] make serializer modification operations no-ops if it's in an error state. 2020-07-30 03:59:49 +04:30
Ebrahim Byagowi
d1f1301490
[icu] Remove support for versions older than 49
It just doesn't make sense anymore, c9e5da8ded (r41018112)
2020-07-30 02:01:43 +04:30
Ebrahim Byagowi
0b74aaece7
[icu] Remove useless HB_UNUSED tags
As c9e5da8ded (r41018040)
2020-07-30 01:47:30 +04:30
Ebrahim Byagowi
c9e5da8ded [icu] Remove support of ICU versions before 42
ICU 42 is released in 2012, see also 44a3136ae6 (commitcomment-41016353)
2020-07-30 01:03:07 +04:30
Garret Rieger
4ba8e3c6fd [ENOMEM] Fix failure to check calloc return.
Fixes https://oss-fuzz.com/testcase-detail/6246465148813312.
2020-07-30 00:08:08 +04:30
Garret Rieger
d307c24abf [ENOMEM] check resize() return.
Fixes https://oss-fuzz.com/testcase-detail/5641892164009984.
2020-07-30 00:08:08 +04:30
Ebrahim Byagowi
8b63de1109 [docs] Use untouched result of rsvg-convert for HarfBuzz.svg render
See also 1ec77522d8
2020-07-29 17:25:07 +04:30
Ebrahim Byagowi
7bab6087bf
[ci] Install meson's master
As https://github.com/mesonbuild/meson/issues/7437
2020-07-29 08:49:01 +04:30
Ebrahim Byagowi
58a5961ca1 minor spacing tweak 2020-07-29 08:44:23 +04:30
Ebrahim Byagowi
07c43b8cf6 minor spacing tweak 2020-07-29 08:42:52 +04:30
Ebrahim Byagowi
5a7cc7fd8b minor spacing tweak 2020-07-29 08:33:38 +04:30
Ebrahim Byagowi
48ad745996 [ENOMEM] Fix buffer's content check logic
So now rest of shape fuzzer also can be enabled.

Fixes #2571
2020-07-29 08:09:10 +04:30
Ebrahim Byagowi
c33e8006fd [fuzz] Implement failing allocator 2020-07-29 07:35:34 +04:30
Ebrahim Byagowi
44a3136ae6 [glib] Default to glib's script type handling
2.29.14 is almost released a decade ago, no need to support archaic glib versions.
2020-07-29 07:05:31 +04:30