Commit Graph

11070 Commits

Author SHA1 Message Date
Tom Schoonjans
eea9b59fc5 [meson] fix generating introspection
Only libharfbuzz_gobject is introspectable, not libharfbuzz. Therefore,
it makes no sense to target the latter for introspection: it should
instead be listed as a dependency.
2020-08-12 16:07:30 +04:30
David Corbett
7bffb5d7ba Generate has_arabic_joining 2020-08-12 11:34:49 +04:30
Garret Rieger
6f754852c1 [ENOMEM] skip asserts in to_bias if serializer is in an error state. 2020-08-12 11:25:30 +04:30
Ebrahim Byagowi
057769b1a3 [fuzzer] minor 2020-08-12 02:40:55 +04:30
Ebrahim Byagowi
0417938011 [fuzzer] Mark alloc_state as unused
It is really unused when failing-alloc isn't on.
2020-08-12 02:40:55 +04:30
Ebrahim Byagowi
2af58c3518 Revert "Remove cmake build files"
This reverts commit 4e572c9407.
2020-08-12 01:00:33 +04:30
Ebrahim Byagowi
ef2e380342 Revert "Remove cmake-config support of HarfBuzz"
This reverts commit 75efa89343.
2020-08-12 01:00:33 +04:30
Ebrahim Byagowi
0ca3557048 Turn -Wunused-but-set-variable to warning
As #2555 turned out some glib headers are imposing that so let's turn it to warning
2020-08-12 00:38:00 +04:30
Ebrahim Byagowi
5193357832 Revert "Remove autotools build support"
This reverts commit 01ac32aab2.
2020-08-11 23:51:59 +04:30
Ebrahim Byagowi
9748ae7299 Revert "Reordering fails when GDEF table is absent #2140"
This reverts commit f4cd99f28e.

As requested in https://github.com/harfbuzz/harfbuzz/issues/2516#issuecomment-670969185
2020-08-11 22:51:48 +04:30
ebraminio
d03eecb4d6
[glyf] minor
style improvement
2020-08-11 16:40:40 +04:30
ebraminio
732a9164d9
[gvar] minor 2020-08-11 16:37:55 +04:30
ebraminio
c0107c1e6e
[ci] test experimental APIs in Arch Linux and sanitizers 2020-08-10 14:30:34 +04:30
ebraminio
0c1561894a
[glyf] minor 2020-08-10 08:52:01 +04:30
Ebrahim Byagowi
f06d7331e8 [glyf] minor 2020-08-10 08:43:54 +04:30
Ebrahim Byagowi
db96c7f67a [glyf] protect CompositeGlyph fields
Introduce methods instead
2020-08-10 08:43:54 +04:30
ebraminio
e5fe363aa5
[glyf] Minor, don't pass accelerator_t to points_aggregator_t
No need to pass it to aggregator itself
2020-08-10 07:39:36 +04:30
ebraminio
2b9927f7e1
[glyf] minor
No need to pass glyph_for_gid as a lambda now that we are passing the accelerator itself
2020-08-10 06:26:21 +04:30
Behdad Esfahbod
fce64a407d Minor 2020-08-08 14:05:03 -06:00
Ebrahim Byagowi
ffe06c8f04 [glyf] Guard all the public APIs against null pool runs
Fixes https://crbug.com/oss-fuzz/24575 and https://crbug.com/oss-fuzz/24737
2020-08-08 13:43:49 +04:30
Ebrahim Byagowi
01ac32aab2 Remove autotools build support 2020-08-07 23:28:12 +04:30
Ryan Schmidt
3d164d5883 Use printf instead of echo -n in autogen.sh
"echo -n" is not portable and on some POSIX systems it literally prints "-n".
2020-08-07 10:45:35 +04:30
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