Commit Graph

5075 Commits

Author SHA1 Message Date
Behdad Esfahbod
7eb3ac29d3 [khmer] Remove indic_config->has_old_spec 2018-01-05 15:41:31 +00:00
Behdad Esfahbod
961ebf85f1 [khmer] Remove Halant from Khmer shaper 2018-01-05 15:36:53 +00:00
Behdad Esfahbod
9761f9d782 [indic] Remove more Khmer-specific stuff from Indic shaper
No numbers changed.
2018-01-05 15:33:11 +00:00
Behdad Esfahbod
0758953644 [indic] Remove main Khmer stuff 2018-01-05 15:08:28 +00:00
Behdad Esfahbod
dcf4d95fea [khmer] Split off Khmer shaper from Indic
Towards fixing https://github.com/harfbuzz/harfbuzz/issues/667
The Khmer spec is different enough from other Indic ones to require
its own grammar.

No change in functionality.  Test numbers are:

BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%)
KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%)
MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
2018-01-05 14:54:31 +00:00
Behdad Esfahbod
1e05ea79d0 [ot] Short-circuit base instance advance variation 2018-01-05 14:01:37 +00:00
Behdad Esfahbod
54b2b93722 [ot] Fix VariationStore evaluation algorithm
Ouch!  Missing coords should still be evaluated as coord=0, which
most of the time results in a factor of 0.  We were skipping these,
which was equivalent to a factor of 1.

Fixes https://github.com/harfbuzz/harfbuzz/issues/652
2018-01-05 13:20:21 +00:00
Behdad Esfahbod
a3afdd1e08 Minor 2018-01-05 13:17:02 +00:00
Behdad Esfahbod
cb43bdbc2f [ft] If there's no variations set, don't set them on hb-font 2018-01-05 13:06:25 +00:00
Behdad Esfahbod
ed2f458b14 Add test font for previous commit 2018-01-05 12:55:39 +00:00
Behdad Esfahbod
127bcc6ece Merge remote-tracking branch 'fdo/master' 2018-01-05 12:50:22 +00:00
Behdad Esfahbod
8c0d1916a4 Improve CGJ skipping logic
Previously we made CGJ unskippable.  Now, if CGJ did NOT prevent
any reordering, allow skipping over it.  To make this work we
had to make changes to the Arabic mark reordering algorithm
implementation to renumber moved MCM marks.  See comments.

Fixes https://github.com/harfbuzz/harfbuzz/issues/554
2018-01-05 12:48:19 +00:00
Ebrahim Byagowi
72bec1cd09
Improve tests (#679) 2018-01-05 12:42:20 +03:30
Behdad Esfahbod
293e443529 Minor 2018-01-04 16:06:25 +00:00
Bruce Mitchener
8a0952db7e atomics: Favor compiler primitives over macOS APIs. (#676)
In macOS 10.12, the `OSMemoryBarrier` and related APIs were deprecated
in favor of using `std::atomic`. On the way to supporting `std::atomic`,
we can favor using the "Intel primitives" which are also available on
macOS.
2018-01-04 15:10:10 +03:30
Bruce Mitchener
4f80078eb0 [cmake] Colorize output when using cmake + ninja. (#674)
Due to how ninja runs clang and gcc, it doesn't colorize the output
like make does. This forces color output in this situation.
2018-01-04 15:07:35 +03:30
Ebrahim Byagowi
5ed26fc5bd
[cmake] Run src/ tests (#675) 2018-01-04 10:11:34 +03:30
Behdad Esfahbod
f8daeef4c4 [use] Simplify more 2018-01-03 14:27:34 +00:00
Behdad Esfahbod
877d15e73c [use] Simplify
Fixes https://github.com/harfbuzz/harfbuzz/pull/661
2018-01-03 14:24:44 +00:00
Behdad Esfahbod
308f419215 [use] Fix Brahmi Number Joiner 1107F
Fixes https://github.com/harfbuzz/harfbuzz/pull/660
2018-01-03 14:22:07 +00:00
Behdad Esfahbod
7b837e20d2 [util] Add TODO item 2018-01-03 12:46:29 +00:00
Ebrahim Byagowi
70807ad274
Fix make check issue on out-of-tree builds and test it (#672) 2018-01-02 23:52:12 +03:30
Bruce Mitchener
85ec6d3443 Fix typos. 2018-01-02 13:26:44 -05:00
Bruce Mitchener
4f6754ac01 Improve Markdown usage in BUILD.md. 2018-01-02 10:03:29 -08:00
Romain Ouabdelkader
3db1d34264 link with CoreFoundation when using CoreText 2018-01-02 07:22:53 -08:00
Ebrahim Byagowi
4e3cf91af2
[cmake] Run rest of the tests on Windows (#668) 2018-01-01 11:17:51 +03:30
Ebrahim Byagowi
2dbdeb1421
[cmake] Run fuzzing and shaping tests (#666) 2017-12-29 23:13:29 +03:30
Ebrahim Byagowi
24b30faa2a
[cmake] Use GNUInstallDirs values (#665) 2017-12-25 22:01:28 +03:30
Behdad Esfahbod
7d397c5d5c Add Coverity badge 2017-12-24 17:53:32 -05:00
Ebrahim Byagowi
50163976d2
[cmake] Enable cmake tests on distribution and test it (#664) 2017-12-25 01:55:48 +03:30
David Corbett
7bfdf1a941 Forbid Batak killers after vowel signs 2017-12-24 14:21:22 -08:00
Ebrahim Byagowi
9890782736
[ci] Add -Wno-attributes to djgpp, add alpine, format (#663) 2017-12-25 01:32:46 +03:30
Behdad Esfahbod
72ecaae0ad [use] Allow ZWJ before/after Halant
https://github.com/harfbuzz/harfbuzz/issues/542#issuecomment-353169729
2017-12-24 16:05:07 -05:00
Behdad Esfahbod
bc92245b68 Minor 2017-12-24 15:54:58 -05:00
Ebrahim Byagowi
81dfc29d2d
[ci] Add a DOS/djgpp compiler (#659) 2017-12-21 20:15:37 +03:30
Behdad Esfahbod
007a2a4317 1.7.4 2017-12-20 12:09:00 -05:00
Volker H. Simonis
a9432bde7e HarfBuzz 1.7.1 and later don't compile on AIX with xlC (#655) 2017-12-19 20:22:24 -05:00
Behdad Esfahbod
2fe5f885b6 [set] Handle nil set in add_range() / add_sorted_array()
Fixes https://github.com/harfbuzz/harfbuzz/issues/657
2017-12-19 14:48:26 -05:00
Behdad Esfahbod
b5bbb791d3 1.7.3 2017-12-18 09:18:51 -05:00
Behdad Esfahbod
1245395a60 [coretext] In hb_coretext_font_create() set ptem
Otherwise setting the CTFont was ineffective as it would have been
recreated anyway unless font size was set to 18 CSS points.
2017-12-17 12:33:08 -05:00
Behdad Esfahbod
493a005d95 [set] In add_sorted_array(), bail if data is not sorted 2017-12-16 11:49:39 -05:00
Behdad Esfahbod
a7bd6d7a4c [collect_glyphs] Bail if input data looks like garbage
Specificaly, when a range or sorted array has unexpected order, we take that as
font data being garbage and bail out.  This fixes significant slowdown on a bad
version of Chandas font which has a 600KB GPOS with garbage inside.

Later on, I like to add a maximum-work counter for collect_glyphs to protect
against malicious fonts as well.

Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=794896
2017-12-16 11:39:32 -05:00
Behdad Esfahbod
1ce7d6e215 [set] Optimize add_array() / add_sorted_array()
Does page lookup as needed.
2017-12-16 11:39:11 -05:00
Behdad Esfahbod
71e6adf1e2 [collect_glyphs] handle ClassDef better 2017-12-16 11:07:37 -05:00
Behdad Esfahbod
87cc5a65cb [collect_glyphs] In PairPosFornat2 do not collect classDef1
The coverage already covered that.
2017-12-16 06:18:07 -08:00
Behdad Esfahbod
81f27df4d9 More work towards improving collect_glyphs() against bad input
The three "XXXXX"'s should be switched to false.  Doing that separately for ease
of bisecting...
2017-12-16 06:12:06 -08:00
Behdad Esfahbod
5d02572034 [set] Add add_sorted_array()
Not optimized to use sortedness yet.  Also start putting in place infra
to faster reject bad data.

A version of Chandas.ttf found on some Chrome bots has 660kb of GPOS,
mostly junk.  That is causing 48 million of set->add() calls in
collect_glyphs(), which is insane.

In the upcoming commits, I'll be speeding that up by optimizing
add_sorted_array(), while also reducing work by rejecting out-of-sort
arrays quickly and propagate the rejection.

Part of https://bugs.chromium.org/p/chromium/issues/detail?id=794896
2017-12-14 19:35:47 -08:00
Behdad Esfahbod
9d6511a734 [set] Reduce number of preallocated pages from 8 to 1
Now that pagesize is 8192, this feels better.
2017-12-14 19:07:17 -08:00
Behdad Esfahbod
ae2e2b068e Fix partial tracing debug builds 2017-12-14 19:07:17 -08:00
Behdad Esfahbod
9daa88cd79 Minor 2017-12-14 19:07:17 -08:00