Michiharu Ariza
9228db06f4
added CFF1 Expert Encoding subset test & bug fixes
2018-10-13 17:25:09 -07:00
Behdad Esfahbod
56b8dd17f6
[aat] Finish off massaging table
2018-10-13 19:03:33 -04:00
Behdad Esfahbod
e0c5e0d91b
[aat] WIP remove feature mapping here from hb-coretext
...
Need to map enum values to numerics since we don't have CoreText headers.
2018-10-13 18:46:52 -04:00
Behdad Esfahbod
cb05774913
[coretext] Prepare AAT feature mapping to be moved
2018-10-13 17:03:32 -04:00
Behdad Esfahbod
de6e414c56
[kerx] Sanitize more
2018-10-13 13:48:22 -04:00
Behdad Esfahbod
71f76f2f39
[kerx] Fix-up previous commit
...
A "&" was missing. Go back to using pointers that are less error-prone.
2018-10-13 13:36:27 -04:00
Behdad Esfahbod
6d4b054234
[kerx] Use sanitizer instead of handcoded runtime sanitization
2018-10-13 12:20:33 -04:00
Behdad Esfahbod
5733113662
[kerx] Wire up context down to get_kerning
2018-10-13 12:16:12 -04:00
Behdad Esfahbod
c4502833b7
[kerx] Use sanitizer.get_num_glyphs() instead of face->get_num_glyphs()
2018-10-13 12:09:59 -04:00
Behdad Esfahbod
fc45e698f2
[kerx] Protext against overflows
2018-10-13 12:09:59 -04:00
Behdad Esfahbod
ed2ee78136
[hangul] Fix use-after-free issue
...
out_info might have moved since we copied it's position into local
info var.
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=894937
2018-10-13 12:09:59 -04:00
Ebrahim Byagowi
63109432cf
Cosmetic and minor changes
2018-10-13 07:23:33 -04:00
Michiharu Ariza
b64ef69b9e
from encode_int removed assert hit by fuzzer
...
clamp the value instead
2018-10-12 14:14:21 -07:00
Behdad Esfahbod
c0a6814b49
Touch up new API
...
New API:
+hb_ot_layout_feature_get_name_ids()
+hb_ot_layout_feature_get_characters()
2018-10-12 16:06:39 -04:00
Behdad Esfahbod
477bc9aafe
Add hb-ot-name.h
...
Actual name-fetching API to come later.
New API:
hb_name_id_t
HB_NAME_ID_INVALID
2018-10-12 16:06:39 -04:00
Ebrahim Byagowi
dc49bd8d81
Add two APIs for getting stylistic set labels
...
* hb_ot_layout_feature_get_characters
* hb_ot_layout_feature_get_name_ids
However HarfBuzz currently doesn't expose an API for retrieving the actual
information associated with NameId from the `name` table and that should be
done separately.
2018-10-12 16:06:39 -04:00
Behdad Esfahbod
e9f9c0d81c
[sanitize] Reorder condition to silence bogus gcc warning
...
Was givin a dozen of:
../../src/hb-machinery.hh: In member function ‘bool AAT::ankr::sanitize(hb_sanitize_context_t*) const’:
../../src/hb-machinery.hh:307:23: warning: missed loop optimization, the loop counter may overflow [-Wunsafe-loop-optimizations]
bool ok = --this->max_ops > 0 &&
~~~~~~~~~~~~~~~~~~~~~~
this->start <= p &&
~~~~~~~~~~~~~~~~~~~
p <= this->end &&
~~~~~~~~~~~~~~~^~
(unsigned int) (this->end - p) >= len;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I believe those are bogus, but this silences them and does not introduce
logic issues I believe.
2018-10-12 16:06:39 -04:00
Behdad Esfahbod
1a6b5ac6c3
Add HB_DEPRECATED_FOR and mark relevant symbols
2018-10-12 16:06:39 -04:00
Behdad Esfahbod
c9413d7bb5
[graphite] Add HB_DEPRECATED annotation
2018-10-12 16:06:39 -04:00
Behdad Esfahbod
68c86af187
Always compile deprecated symbols
...
We haven't been keeping this updated. So, while we don't expose the
symbols in the headers if HB_DISABLE_DEPRECATED is defined, we still
always build them.
2018-10-12 16:06:39 -04:00
Michiharu Ariza
fc0153a1d4
Merge branch 'master' into cff-subset
2018-10-12 12:16:50 -07:00
Michiharu Ariza
7d99a6cef8
overhauled error handling in CFF interpreter
...
minimized "if (error) return false" idiom
2018-10-12 02:16:07 -07:00
David Corbett
c55100000b
Add missing colons to GObject annotations
2018-10-11 22:47:35 -04:00
David Corbett
1e816d62ef
Fix Indic script tags in Graphite
2018-10-11 20:51:08 -04:00
Behdad Esfahbod
bf8469be9a
Attach CursivePositioning backwards, not forward
...
This is how Uniscribe does it. So, adjust. This is only relevant
to fonts that apply cursive positioning from a contextual lookup.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1181
2018-10-11 20:45:40 -04:00
Behdad Esfahbod
bdb53ca24a
[myanmar] Implement Zawgyi shaper
...
Enabled if script tag 'Qaag' is passed to HarfBuzz. Disables mark
advance-zeroing and fallback mark-positioning.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1162
2018-10-11 20:20:29 -04:00
Behdad Esfahbod
00c5c4a79d
[myanmar] Shuffle
2018-10-11 20:15:31 -04:00
Behdad Esfahbod
ec8f493bf9
[graphite] Remove assert
2018-10-11 20:15:00 -04:00
Behdad Esfahbod
5646dcbd11
Minor
2018-10-11 19:39:07 -04:00
Behdad Esfahbod
788e147855
[test] Add test for USE indic3
2018-10-11 19:24:52 -04:00
Behdad Esfahbod
a11972787a
Minor
2018-10-11 19:23:36 -04:00
Behdad Esfahbod
654365dc89
Pass indic3 tags to USE shaper
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/539
2018-10-11 17:51:21 -04:00
David Corbett
28d091d045
Parse Indic3 tags
2018-10-11 17:44:13 -04:00
Behdad Esfahbod
211cd3691b
Remove remains of get-codepoint-fuzzer
2018-10-11 17:31:29 -04:00
Behdad Esfahbod
120ed02725
[fuzzing] Fold get-codepoints-fuzzer into subset-fuzzer
2018-10-11 17:08:12 -04:00
Behdad Esfahbod
2c824d3644
[aat] Fix two wrongs that made a right before!
...
Unfortunately our static asserts (DEFINE_SIZE_STATIC) don't actually
fail when used in templates, thanks to SFINAE. Le sighs.
Probably fixes https://oss-fuzz.com/v2/testcase-detail/5740171484463104
2018-10-11 16:43:05 -04:00
Behdad Esfahbod
e940530c97
[aat] Fix mul overflow
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10897
2018-10-11 15:56:17 -04:00
Behdad Esfahbod
1d995a340b
Minor
2018-10-11 15:42:54 -04:00
Behdad Esfahbod
0744a02cb1
[arabic] Update to latest UTR#53
...
From Lorna Evans: "That was a new character added to Unicode 11.0"
2018-10-11 15:14:18 -04:00
Behdad Esfahbod
57b05210b1
[test] Fix use of deprecated symbols
2018-10-11 15:03:21 -04:00
Michiharu Ariza
ca37172ee3
fixed leak
2018-10-11 11:55:55 -07:00
Behdad Esfahbod
4f9e36e8cf
[graphite] Remove deprecated symbol use
2018-10-11 14:32:59 -04:00
Behdad Esfahbod
da591f2a9d
Whitespace
2018-10-11 14:30:15 -04:00
Behdad Esfahbod
4d205f0462
[graphite] Fix deva/dev2 resolution
...
See https://github.com/harfbuzz/harfbuzz/pull/730#issuecomment-428277800
2018-10-11 14:25:48 -04:00
Behdad Esfahbod
8061664ad1
Add doc stubs for recently added API
...
Thanks to David Corbett who revamped our script and language processing
and implemented full BCP 47 support.
https://github.com/harfbuzz/harfbuzz/pull/730
New API:
+hb_ot_layout_table_select_script()
+hb_ot_layout_script_select_language()
+HB_OT_MAX_TAGS_PER_SCRIPT
+HB_OT_MAX_TAGS_PER_LANGUAGE
+hb_ot_tags_from_script_and_language()
+hb_ot_tags_to_script_and_language()
Deprecated API:
-hb_ot_layout_table_choose_script()
-hb_ot_layout_script_find_language()
-hb_ot_tags_from_script()
-hb_ot_tag_from_language()
2018-10-11 14:17:17 -04:00
Behdad Esfahbod
cf975ac653
Remove use of deprecated function
2018-10-11 14:07:44 -04:00
David Corbett
66790d64c7
Increase HB_OT_MAX_TAGS_PER_SCRIPT to 3
...
No script has 3 tags yet, but the plan is for the Indic scripts to each
get a third tag someday.
2018-10-11 13:54:28 -04:00
David Corbett
bca7a16938
Update language system tag registry to OT 1.8.3
2018-10-11 13:54:28 -04:00
David Corbett
7f1fbfe2e3
Add hb_ot_tags_to_script_and_language
2018-10-11 13:54:28 -04:00
David Corbett
3f8877473f
Switch on the first char of a complex language tag
...
This results in a tenfold speed-up for the common case of tags that are
not complex, in the sense of `hb_ot_tags_from_complex_language`.
2018-10-11 13:54:28 -04:00