Ebrahim Byagowi [Fri, 28 Sep 2018 22:41:05 +0000 (02:11 +0330)]
[ci] Another try on mingw bot
Ebrahim Byagowi [Fri, 28 Sep 2018 22:27:50 +0000 (01:57 +0330)]
[ci] Another try on fixing mingw bots
Per https://github.com/Alexpux/MSYS2-packages/issues/163#issuecomment-
73555971
Ebrahim Byagowi [Fri, 28 Sep 2018 17:23:48 +0000 (20:53 +0330)]
[tests] Don't try to get glyph names on failures
As it may cause a race unrelated to the issue actually happened
Ebrahim Byagowi [Fri, 28 Sep 2018 17:17:21 +0000 (20:47 +0330)]
[ci] Trying to fix mingw bot
As https://github.com/Alexpux/MSYS2-packages/issues/702
Behdad Esfahbod [Fri, 28 Sep 2018 15:06:49 +0000 (11:06 -0400)]
Fix pthread fail for real
Using a hack...
Behdad Esfahbod [Fri, 28 Sep 2018 14:55:28 +0000 (10:55 -0400)]
Fix bot fails
Behdad Esfahbod [Fri, 28 Sep 2018 14:14:23 +0000 (10:14 -0400)]
[morx] Remove mark_set from Insertion
text-rendering-tests test MORX-32 shows that for Insertion, an unset mark is treated
as mark set at 0. This is unlike the Reordering lookup where un unset mark performs
nothing.
Fixes MORX-32.
Behdad Esfahbod [Fri, 28 Sep 2018 14:00:07 +0000 (10:00 -0400)]
[morx] unsafe-to-break in Insertion
Makes MORX-29, MORX-30, MORX-31 pass.
Behdad Esfahbod [Fri, 28 Sep 2018 13:51:35 +0000 (09:51 -0400)]
[test/text-rendering-tests] Update from upstream
Behdad Esfahbod [Fri, 28 Sep 2018 13:47:45 +0000 (09:47 -0400)]
Fix ubsan bot
Behdad Esfahbod [Fri, 28 Sep 2018 13:13:14 +0000 (09:13 -0400)]
More atomic tuneup
Behdad Esfahbod [Fri, 28 Sep 2018 12:45:57 +0000 (08:45 -0400)]
[test-multithread] Install ot funcs before filling ref buffer
Behdad Esfahbod [Fri, 28 Sep 2018 12:43:37 +0000 (08:43 -0400)]
[test-multithread] Take num-threads and num-iters from command-line
Behdad Esfahbod [Fri, 28 Sep 2018 12:33:26 +0000 (08:33 -0400)]
Minor
Ebrahim Byagowi [Fri, 28 Sep 2018 12:43:01 +0000 (16:13 +0330)]
test-multithread, check the results on every iteration (#1194)
Ebrahim Byagowi [Fri, 28 Sep 2018 12:31:15 +0000 (16:01 +0330)]
Make test-multithread pass the tsan bot test (#1193)
Behdad Esfahbod [Thu, 27 Sep 2018 21:23:24 +0000 (17:23 -0400)]
More atomic fixup
Behdad Esfahbod [Thu, 27 Sep 2018 21:20:26 +0000 (17:20 -0400)]
Fixup atomics from recent change
Behdad Esfahbod [Thu, 27 Sep 2018 20:54:23 +0000 (16:54 -0400)]
[cache] Use atomic writes in clear()
To help TSan.
Volker Krause [Thu, 27 Sep 2018 14:33:49 +0000 (16:33 +0200)]
Fix infinite loop when walking up the directory hierarchy (#1183)
A single find_package(harfbuzz) line in user code resulted in this loop
getting stuck when _harfbuzz_libdir_iter became "/".
Ebrahim Byagowi [Thu, 27 Sep 2018 08:23:17 +0000 (11:53 +0330)]
Use clang for compiling freetype for tsan bot
Behdad Esfahbod [Wed, 26 Sep 2018 22:42:37 +0000 (18:42 -0400)]
[arabic] Do the joiner-flipping only for rlig feature
See comment.
Behdad Esfahbod [Wed, 26 Sep 2018 20:40:23 +0000 (16:40 -0400)]
[ft] Make TSan happy
Behdad Esfahbod [Wed, 26 Sep 2018 20:37:18 +0000 (16:37 -0400)]
Add more atomic intrinsics
Behdad Esfahbod [Wed, 26 Sep 2018 20:29:35 +0000 (16:29 -0400)]
Rename test
Ebrahim Byagowi [Wed, 26 Sep 2018 20:38:06 +0000 (00:08 +0330)]
[ci] Compile freetype on tsan and put sanitizer flags on correct places (#1188)
Ebrahim Byagowi [Wed, 26 Sep 2018 20:02:45 +0000 (23:32 +0330)]
Test freetype funcs on test-multithread (#1187)
Ebrahim Byagowi [Wed, 26 Sep 2018 19:23:02 +0000 (22:53 +0330)]
Minor, remove the no longer needed comment on test-multithread
Behdad Esfahbod [Wed, 26 Sep 2018 19:03:07 +0000 (15:03 -0400)]
Make TSan happy with make_immutable()
Behdad Esfahbod [Wed, 26 Sep 2018 19:02:21 +0000 (15:02 -0400)]
Fix test-multithread and increase num_threads to 30
What were you thinking? ;)
Ebrahim Byagowi [Wed, 26 Sep 2018 17:20:51 +0000 (20:50 +0330)]
Add a multithreaded test (#1184)
Behdad Esfahbod [Wed, 26 Sep 2018 16:13:47 +0000 (12:13 -0400)]
[hb-view] Change subpixel bits from 8 to 6
To match FreeType units, such that FreeType gets correct size from us.
This matters more now that we allow setting --ft-load-flags.
Behdad Esfahbod [Tue, 25 Sep 2018 16:47:37 +0000 (12:47 -0400)]
Fix iOS build
Fixes https://github.com/harfbuzz/harfbuzz/pull/1179
Ebrahim Byagowi [Tue, 25 Sep 2018 05:54:35 +0000 (09:24 +0330)]
[circle] Add an obsessive clang bot (#1178)
Behdad Esfahbod [Mon, 24 Sep 2018 23:43:01 +0000 (19:43 -0400)]
Disable msan bot again
Fixes https://github.com/harfbuzz/harfbuzz/issues/1175
Behdad Esfahbod [Mon, 24 Sep 2018 23:07:23 +0000 (19:07 -0400)]
Minor
Behdad Esfahbod [Mon, 24 Sep 2018 22:30:50 +0000 (18:30 -0400)]
More iter inits
Behdad Esfahbod [Mon, 24 Sep 2018 22:11:59 +0000 (18:11 -0400)]
Minor
Behdad Esfahbod [Mon, 24 Sep 2018 22:03:34 +0000 (18:03 -0400)]
Remove F_COMBINE
Now I wonder if any bots will be unhappy we calling | in static const initializations...
Or would that cost runtime init? Our tests don't detect any..
Behdad Esfahbod [Mon, 24 Sep 2018 22:01:53 +0000 (18:01 -0400)]
Some more
Behdad Esfahbod [Mon, 24 Sep 2018 21:55:03 +0000 (17:55 -0400)]
Minor refactoring
Ebrahim Byagowi [Mon, 24 Sep 2018 21:30:32 +0000 (01:00 +0330)]
[circleci] Update sanitizer bots with newer clang and Ubuntu version (#1176)
Behdad Esfahbod [Mon, 24 Sep 2018 21:22:39 +0000 (17:22 -0400)]
[msan] Enable again to get a build log, and try to play with suppressions
Behdad Esfahbod [Mon, 24 Sep 2018 17:12:15 +0000 (13:12 -0400)]
[ubsan] Re-enable now that it passes locally
Behdad Esfahbod [Mon, 24 Sep 2018 17:11:34 +0000 (13:11 -0400)]
[check-static-inits.sh] Allow some if ubsan is in effect
Behdad Esfahbod [Mon, 24 Sep 2018 17:04:48 +0000 (13:04 -0400)]
[check-symbols.sh] Allow weak objects "V"
ubsan generates these.
Behdad Esfahbod [Mon, 24 Sep 2018 17:01:35 +0000 (13:01 -0400)]
Link API test programs with C++ linker
Needed to make ubsan work.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1174
Behdad Esfahbod [Mon, 24 Sep 2018 16:52:42 +0000 (12:52 -0400)]
[msan] Add MSAN_OPTIONS=exitcode=42
Default exit value is 77, which causes autotools to "skip" test.
Behdad Esfahbod [Mon, 24 Sep 2018 16:43:29 +0000 (12:43 -0400)]
[circleci] Disable msan and ubsan builds
https://github.com/harfbuzz/harfbuzz/issues/1174
https://github.com/harfbuzz/harfbuzz/issues/1175
Behdad Esfahbod [Mon, 24 Sep 2018 15:52:22 +0000 (11:52 -0400)]
Ignore weak symbols in check-symbols.sh
Some clang versions leave a std::round(float) weak symbol around...
Behdad Esfahbod [Mon, 24 Sep 2018 14:43:06 +0000 (10:43 -0400)]
[docs] A few improvements
If we wrote just this much every day...
Behdad Esfahbod [Mon, 24 Sep 2018 13:57:52 +0000 (09:57 -0400)]
Readjust Hebrew composition again
Behdad Esfahbod [Mon, 24 Sep 2018 13:56:18 +0000 (09:56 -0400)]
Revert change that would decompose text if GPOS mark feature is available
https://github.com/harfbuzz/harfbuzz/issues/653#issuecomment-
423905920
Behdad Esfahbod [Mon, 24 Sep 2018 13:54:37 +0000 (09:54 -0400)]
Fix normalization
https://github.com/harfbuzz/harfbuzz/commit/
62d1e0852a5549a1b510ad46a4b89f12730bb708#commitcomment-
30613091
Behdad Esfahbod [Mon, 24 Sep 2018 02:33:38 +0000 (22:33 -0400)]
Simplify ZWJ-skipping a bit
Towards disabling ZWJ-skipping in certain GPOS contexts.
Part of https://github.com/flutter/flutter/issues/16886
Behdad Esfahbod [Mon, 24 Sep 2018 02:00:34 +0000 (22:00 -0400)]
Reinit skippy iters when auto_zwj / auto_zwnj change
Ouch. How did we not hit this bug before...
Behdad Esfahbod [Mon, 24 Sep 2018 01:32:18 +0000 (21:32 -0400)]
Prefer decomposed form if font has GPOS mark feature
Fixes https://github.com/harfbuzz/harfbuzz/issues/653
Behdad Esfahbod [Sun, 23 Sep 2018 23:12:52 +0000 (19:12 -0400)]
[ot-font] Fix leak
Fixes https://github.com/harfbuzz/harfbuzz/issues/1171
I'm glad we have leak-detector bots now.
Ebrahim Byagowi [Sat, 22 Sep 2018 10:52:17 +0000 (14:22 +0330)]
Add bots with address- and thread-sanitizer
Matt Oliver [Sun, 23 Sep 2018 08:08:30 +0000 (18:08 +1000)]
src/hb-blob.cc: Fix mmap functionality with UWP.
Khaled Hosny [Sat, 22 Sep 2018 14:41:56 +0000 (16:41 +0200)]
[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.
Ebrahim Byagowi [Sat, 22 Sep 2018 13:54:03 +0000 (17:24 +0330)]
Fix test-subset-* leak issues
See also https://github.com/harfbuzz/harfbuzz/pull/1169
Ebrahim Byagowi [Sat, 22 Sep 2018 13:35:52 +0000 (17:05 +0330)]
Fix test-ot-math leak issue
See also https://github.com/harfbuzz/harfbuzz/pull/1169
Ebrahim Byagowi [Sat, 22 Sep 2018 13:19:23 +0000 (16:49 +0330)]
Fix test-set leak issue
See also https://github.com/harfbuzz/harfbuzz/pull/1169
Ebrahim Byagowi [Sat, 22 Sep 2018 13:15:31 +0000 (16:45 +0330)]
Fix test-font leak issue
See also https://github.com/harfbuzz/harfbuzz/pull/1169
Behdad Esfahbod [Thu, 20 Sep 2018 02:34:09 +0000 (22:34 -0400)]
[morx] Fix mark_set check
Behdad Esfahbod [Wed, 19 Sep 2018 21:32:21 +0000 (17:32 -0400)]
[aat] Minor
Behdad Esfahbod [Wed, 19 Sep 2018 21:10:26 +0000 (17:10 -0400)]
[coretext] Minor
Behdad Esfahbod [Wed, 19 Sep 2018 20:46:41 +0000 (16:46 -0400)]
[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.
Behdad Esfahbod [Wed, 19 Sep 2018 20:24:34 +0000 (16:24 -0400)]
[morx] Implement horiz-only/vert-only subtables
Behdad Esfahbod [Wed, 19 Sep 2018 20:02:56 +0000 (16:02 -0400)]
[morx] Improve buffer position in Insertion w DontAdvance and wo
Just speculation. Needs tests to determine which is correct behavior.
Behdad Esfahbod [Mon, 17 Sep 2018 17:29:34 +0000 (19:29 +0200)]
[morx] Implement InsertionChain
David Corbett [Mon, 17 Sep 2018 15:09:51 +0000 (11:09 -0400)]
Don't enforce a native direction for Old Hungarian
Simon Hausmann [Mon, 17 Sep 2018 08:33:34 +0000 (10:33 +0200)]
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.
Behdad Esfahbod [Sun, 16 Sep 2018 17:33:48 +0000 (19:33 +0200)]
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
94bfea0ce6a7b4d5641c198d50751748a353df11.
This reverts commit
4e62627831e7457ed60ff87712570065b14b200a.
Behdad Esfahbod [Sun, 16 Sep 2018 17:25:19 +0000 (19:25 +0200)]
One more bot fix
Behdad Esfahbod [Sun, 16 Sep 2018 17:12:19 +0000 (19:12 +0200)]
Fix build, another try
Behdad Esfahbod [Sun, 16 Sep 2018 16:11:46 +0000 (18:11 +0200)]
Fix bots
"Unused private member" warning turned error. ugh.
Behdad Esfahbod [Sun, 16 Sep 2018 16:09:36 +0000 (18:09 +0200)]
Enforce single-param static_assert() only
So we don't accidentally break it again.
Behdad Esfahbod [Sun, 16 Sep 2018 16:01:32 +0000 (18:01 +0200)]
Remove unused try
Behdad Esfahbod [Sun, 16 Sep 2018 15:57:12 +0000 (17:57 +0200)]
Fix static_assert
Behdad Esfahbod [Sat, 15 Sep 2018 17:43:33 +0000 (19:43 +0200)]
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.
Behdad Esfahbod [Sat, 15 Sep 2018 16:31:14 +0000 (18:31 +0200)]
[morx] Respect default feature settings
Does NOT apply user-selected features. But at least now enables
correct subtables.
Behdad Esfahbod [Sat, 15 Sep 2018 12:51:50 +0000 (14:51 +0200)]
[aat] Change version field
Behdad Esfahbod [Sat, 15 Sep 2018 12:47:18 +0000 (14:47 +0200)]
[morx] Add stub for InsertionChain
Behdad Esfahbod [Fri, 14 Sep 2018 16:59:53 +0000 (18:59 +0200)]
[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.
Behdad Esfahbod [Fri, 14 Sep 2018 12:23:09 +0000 (14:23 +0200)]
[unicode] Move Fitzpatrick hack from ot-layout into unicode.hh
Behdad Esfahbod [Fri, 14 Sep 2018 10:15:53 +0000 (12:15 +0200)]
Minor
Behdad Esfahbod [Fri, 14 Sep 2018 10:14:42 +0000 (12:14 +0200)]
Fix builds
Behdad Esfahbod [Fri, 14 Sep 2018 09:31:33 +0000 (11:31 +0200)]
[aat] Add enums for pre-defined state and classes
Not sure how I didn't add before...
Behdad Esfahbod [Fri, 14 Sep 2018 08:58:00 +0000 (10:58 +0200)]
Don't dereference offset before check_struct()
Behdad Esfahbod [Thu, 13 Sep 2018 18:35:21 +0000 (20:35 +0200)]
[dfont] Also check dataLen range in sanitize
Just to disagree with myself re being done with this code...
Behdad Esfahbod [Thu, 13 Sep 2018 18:30:04 +0000 (20:30 +0200)]
[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!
Behdad Esfahbod [Thu, 13 Sep 2018 18:21:54 +0000 (20:21 +0200)]
Rename HeadlessArrayOf::len to lenP1
So it doesn't accidentally match our templates, etc.
Behdad Esfahbod [Thu, 13 Sep 2018 17:19:57 +0000 (19:19 +0200)]
[dfont] Some more
Behdad Esfahbod [Thu, 13 Sep 2018 17:13:01 +0000 (19:13 +0200)]
[dfont] Push methods further down
Behdad Esfahbod [Thu, 13 Sep 2018 17:08:22 +0000 (19:08 +0200)]
[dfont] Minor
Behdad Esfahbod [Thu, 13 Sep 2018 17:05:59 +0000 (19:05 +0200)]
[dfon]t Sanitize OpenTypeFontFace
Behdad Esfahbod [Thu, 13 Sep 2018 16:49:16 +0000 (18:49 +0200)]
[dfont] Minor
Behdad Esfahbod [Thu, 13 Sep 2018 16:47:53 +0000 (18:47 +0200)]
[dfont] Make test pass
Offset 0 is not null in this context.