Commit Graph

6479 Commits

Author SHA1 Message Date
Behdad Esfahbod
e45ba31dc7 [check-symbols.sh] Allow weak objects "V"
ubsan generates these.
2018-09-24 13:04:48 -04:00
Behdad Esfahbod
d07f3111b4 Link API test programs with C++ linker
Needed to make ubsan work.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1174
2018-09-24 13:01:35 -04:00
Behdad Esfahbod
a96508cfc9 [msan] Add MSAN_OPTIONS=exitcode=42
Default exit value is 77, which causes autotools to "skip" test.
2018-09-24 12:52:42 -04:00
Behdad Esfahbod
45f5aa9790 [circleci] Disable msan and ubsan builds
https://github.com/harfbuzz/harfbuzz/issues/1174
https://github.com/harfbuzz/harfbuzz/issues/1175
2018-09-24 12:43:29 -04:00
Behdad Esfahbod
2d93148a0f Ignore weak symbols in check-symbols.sh
Some clang versions leave a std::round(float) weak symbol around...
2018-09-24 11:52:22 -04:00
Behdad Esfahbod
55bae6825e [docs] A few improvements
If we wrote just this much every day...
2018-09-24 10:43:06 -04:00
Behdad Esfahbod
57fa2c23de Readjust Hebrew composition again 2018-09-24 09:57:52 -04:00
Behdad Esfahbod
7f335390f3 Revert change that would decompose text if GPOS mark feature is available
https://github.com/harfbuzz/harfbuzz/issues/653#issuecomment-423905920
2018-09-24 09:56:18 -04:00
Behdad Esfahbod
a6f4b2f7cd Fix normalization
62d1e0852a (commitcomment-30613091)
2018-09-24 09:54:37 -04:00
Behdad Esfahbod
3583fb03b1 Simplify ZWJ-skipping a bit
Towards disabling ZWJ-skipping in certain GPOS contexts.

Part of https://github.com/flutter/flutter/issues/16886
2018-09-23 22:33:38 -04:00
Behdad Esfahbod
9516cbd3df Reinit skippy iters when auto_zwj / auto_zwnj change
Ouch.  How did we not hit this bug before...
2018-09-23 22:00:34 -04:00
Behdad Esfahbod
62d1e0852a Prefer decomposed form if font has GPOS mark feature
Fixes https://github.com/harfbuzz/harfbuzz/issues/653
2018-09-23 21:32:18 -04:00
Behdad Esfahbod
d7f21777e6 [ot-font] Fix leak
Fixes https://github.com/harfbuzz/harfbuzz/issues/1171

I'm glad we have leak-detector bots now.
2018-09-23 19:12:52 -04:00
Ebrahim Byagowi
ae39a53f55 Add bots with address- and thread-sanitizer 2018-09-23 15:23:29 -07:00
Matt Oliver
24dd6c1a9d src/hb-blob.cc: Fix mmap functionality with UWP. 2018-09-23 07:23:58 -07:00
Khaled Hosny
b7f1bbc2f8 [test] Fix printing subprocess error messages
Decode the string as Python 3 returns bytes string, and also don’t
assume that it ends with a new line.
2018-09-22 17:20:06 +02:00
Ebrahim Byagowi
403019482b
Fix test-subset-* leak issues
See also https://github.com/harfbuzz/harfbuzz/pull/1169
2018-09-22 17:24:03 +03:30
Ebrahim Byagowi
f6ebe1f4dc
Fix test-ot-math leak issue
See also https://github.com/harfbuzz/harfbuzz/pull/1169
2018-09-22 17:05:52 +03:30
Ebrahim Byagowi
669ac81ac5
Fix test-set leak issue
See also https://github.com/harfbuzz/harfbuzz/pull/1169
2018-09-22 16:49:23 +03:30
Ebrahim Byagowi
ef9307fd22
Fix test-font leak issue
See also https://github.com/harfbuzz/harfbuzz/pull/1169
2018-09-22 16:45:31 +03:30
Behdad Esfahbod
5fd8bce945 [morx] Fix mark_set check 2018-09-19 22:34:09 -04:00
Behdad Esfahbod
0739b28169 [aat] Minor 2018-09-19 17:32:21 -04:00
Behdad Esfahbod
7671cb9b04 [coretext] Minor 2018-09-19 17:10:26 -04:00
Behdad Esfahbod
dc8ed45292 [morx] Implement forward/backward processing
We reverse too many times. Can be optimized. But I doubt many fonts
use reverse lookups, so doesn't matter.

Other than not applying user features, this completes morx table
implementation.
2018-09-19 16:47:25 -04:00
Behdad Esfahbod
3bccd62196 [morx] Implement horiz-only/vert-only subtables 2018-09-19 16:24:34 -04:00
Behdad Esfahbod
041a08de3d [morx] Improve buffer position in Insertion w DontAdvance and wo
Just speculation. Needs tests to determine which is correct behavior.
2018-09-19 16:02:56 -04:00
Behdad Esfahbod
388ab91642 [morx] Implement InsertionChain 2018-09-17 20:28:32 +02:00
David Corbett
d8d1e7df00 Don't enforce a native direction for Old Hungarian 2018-09-17 18:53:25 +02:00
Simon Hausmann
6a97d0f3d3 Fix installation of cmake config when building with cmake (#1161)
When building with the auto tools, the manually mantained
harfbuzz-config.cmake is installed. When building with cmake, we can use
cmake to generate the correct config files for us and install them.
2018-09-17 13:03:34 +04:30
Behdad Esfahbod
606bf57430 Revert forcing use of single-parameter static_assert()
Some clang versions define static_assert as a macro apparently, so we cannot
redefine it...

This reverts commit 94bfea0ce6.
This reverts commit 4e62627831.
2018-09-16 19:34:39 +02:00
Behdad Esfahbod
cbcaba6ffd One more bot fix 2018-09-16 19:25:19 +02:00
Behdad Esfahbod
94bfea0ce6 Fix build, another try 2018-09-16 19:12:19 +02:00
Behdad Esfahbod
89dd4b9597 Fix bots
"Unused private member" warning turned error.  ugh.
2018-09-16 18:11:46 +02:00
Behdad Esfahbod
4e62627831 Enforce single-param static_assert() only
So we don't accidentally break it again.
2018-09-16 18:09:36 +02:00
Behdad Esfahbod
f1a86e1e6f Remove unused try 2018-09-16 18:01:32 +02:00
Behdad Esfahbod
ebd50b3c83 Fix static_assert 2018-09-16 17:57:12 +02:00
Behdad Esfahbod
10642b3fbf Disallow null-enabled offsets to unsized structures...
...like UnsizedArrayOf<>.

This fixes a class of crasher bugs, mostly with color and AAT tables.  We
cannot use nullable offsets to varsized data that does not declare min_size,
because it's nost safe to use our fixed-size null pool for types that have
their size external.  So, use non_null'able offsets for these.

A further enhancement would be to make use of min_size in Null<> itself.
Will try that after.
2018-09-15 19:43:33 +02:00
Behdad Esfahbod
9ff76c6025 [morx] Respect default feature settings
Does NOT apply user-selected features.  But at least now enables
correct subtables.
2018-09-15 18:31:14 +02:00
Behdad Esfahbod
2f97da6e2d [aat] Change version field 2018-09-15 14:51:50 +02:00
Behdad Esfahbod
29c2bd1795 [morx] Add stub for InsertionChain 2018-09-15 14:47:18 +02:00
Behdad Esfahbod
f8ccb545c4 [dfont] Disable null-processsing for offsets
An offset to unsized arrayis not safe to be redirected to our fixed-sized
null pool.  Plus, we want to reject, not repair, bad-looking dfonts.
2018-09-14 18:59:53 +02:00
Behdad Esfahbod
01b9148d9a [unicode] Move Fitzpatrick hack from ot-layout into unicode.hh 2018-09-14 14:23:09 +02:00
Behdad Esfahbod
6ebbf514ac Minor 2018-09-14 12:15:53 +02:00
Behdad Esfahbod
957dbed388 Fix builds 2018-09-14 12:14:42 +02:00
Behdad Esfahbod
4653e6cf3c [aat] Add enums for pre-defined state and classes
Not sure how I didn't add before...
2018-09-14 11:31:33 +02:00
Behdad Esfahbod
67449c3933 Don't dereference offset before check_struct() 2018-09-14 10:58:00 +02:00
Behdad Esfahbod
ca746f261e [dfont] Also check dataLen range in sanitize
Just to disagree with myself re being done with this code...
2018-09-13 20:35:21 +02:00
Behdad Esfahbod
3789c557ca [dfont] Solve the mystery +2 offset thing!
Previously, ResourceForkHeader was defined as 30 bytes, having the typeCountM1 as last member.
There was a mysterious offset-by-2 in the code, derived from FontTools and JDK code this was
ported from.

In testing, I observed that typeListZ offset is actually 28.  Suggesting that the typeCountM1
does NOT actually belong to ResourceForkHeader, but belongs to the array itself.  Adjusting for
that resolves the mystery +2 offset hack, so everything is clean and good now.

This, concludes my dfont hacking.  The code looks great now, and I'm happy to leave it.
Fuzzers might disagree though, we will see!
2018-09-13 20:32:13 +02:00
Behdad Esfahbod
effc7ced72 Rename HeadlessArrayOf::len to lenP1
So it doesn't accidentally match our templates, etc.
2018-09-13 20:21:54 +02:00
Behdad Esfahbod
180a88a96c [dfont] Some more 2018-09-13 19:26:44 +02:00