Commit Graph

3963 Commits

Author SHA1 Message Date
Behdad Esfahbod
ca97ea7aa2 [ft] Revert change-of-behavior of hb_ft_font_create() introduced in 1.0.5
The default FreeType load flags where changed from FT_LOAD_NO_HINTING
to FT_LOAD_DEFAULT in 2a9627c564.
This is crashing HarfBuzz-enabled FreeType as I suppose it causes
infinite recursion between HB and FT autohinter...

Revert the behavior change.

Fixes https://github.com/behdad/harfbuzz/issues/143
2015-10-15 20:20:22 -03:00
Behdad Esfahbod
338ffec9e4 Add tests for a couple of fixed issues found by libFuzzer
From:
https://github.com/behdad/harfbuzz/issues/139#issuecomment-147616887
https://github.com/behdad/harfbuzz/issues/139#issuecomment-148289957
2015-10-15 12:56:19 -03:00
Behdad Esfahbod
63ef0b41dc [ot-font] Fix hmtx wrong table length check
Discovered by libFuzzer.  Ouch!

https://github.com/behdad/harfbuzz/issues/139#issuecomment-148289957
2015-10-15 12:54:28 -03:00
Behdad Esfahbod
613e630617 Reduce max nesting level from 8 to 6
We probably should implement better system to catch cyclic lookups.
But for now, this speeds up worst case behavior with broken fonts
considerably without compromising legitimate usecases.

https://github.com/behdad/harfbuzz/issues/139#issuecomment-147788447
2015-10-13 23:33:28 -03:00
Behdad Esfahbod
ab17052924 1.0.5 2015-10-13 10:55:33 -03:00
Behdad Esfahbod
ed13e2ce50 [ot-font] Fix leak
https://github.com/behdad/harfbuzz/issues/139#issuecomment-147616887
2015-10-13 10:32:56 -03:00
Behdad Esfahbod
55db94be2b Add test for previous commit 2015-10-13 00:33:59 -04:00
Behdad Esfahbod
f966649747 Fix another memory access issue discovered by libFuzzer
Fixes https://github.com/behdad/harfbuzz/issues/139#issuecomment-146984679
2015-10-13 00:30:50 -04:00
Behdad Esfahbod
c1a5dc46c2 [fuzz] Add fuzzing script from kcc@
https://github.com/behdad/harfbuzz/issues/139
2015-10-12 17:39:52 -04:00
Behdad Esfahbod
cc6ea308d4 Extern "C" custom-allocator declerations 2015-10-12 17:21:52 -04:00
Behdad Esfahbod
98c6fccc00 Add test for ee9b0b6cb5 2015-10-11 21:41:04 -04:00
Behdad Esfahbod
50f489a0a0 Typo 2015-10-11 20:59:29 -04:00
Behdad Esfahbod
ee9b0b6cb5 Fix another sanitize bug
Also discovered by "libFuzzer".
2015-10-09 14:23:15 -04:00
Behdad Esfahbod
34379b49e6 Add test for previous fix 2015-10-09 12:34:02 -04:00
Behdad Esfahbod
f396fbb000 Fix return value of sanitize when subformat is not readable
This is a fix on top of the previous issue fixed in
c917965b9e.

This was caught by "libFuzzer" testing.
2015-10-09 12:25:55 -04:00
Behdad Esfahbod
77a1a2bc18 Add hb_dispatch_context_t 2015-10-09 12:20:58 -04:00
Behdad Esfahbod
3e905e396b Add hb_font_set_parent()
No reason to not have it.  Makes life easier later.
We (hb-ft, hb-ot-font, etc) can use this API to inject new
parent into a font...
2015-10-08 12:51:02 -04:00
Behdad Esfahbod
edeb3dabf4 [ft] Add version for new API 2015-10-08 12:47:15 -04:00
Behdad Esfahbod
2a9627c564 [ft] API: Add hb_font_[sg]et_load_flags() API
This changes the default load_flags of fonts created using
hb_ft_font_create() from NO_HINTING to DEFAULT.  Hope that doesn't
break too much client code.

Code calling hb_ft_font_set_funcs() is unaffected.
2015-10-07 17:39:37 -04:00
Behdad Esfahbod
3224a594dc Minor 2015-10-07 17:33:02 -04:00
Behdad Esfahbod
52b418555b Allow compiling with custom allocators
User can define hb_malloc_impl, etc, to name of custom allocator functions
that have the same signature as malloc.
2015-10-03 13:20:55 +01:00
Behdad Esfahbod
88da7bba9f Default font scale to face upem
Makes for a better default and avoids nasty inheritance issues.
See mailing list thread "Default hb_font_t scale".
2015-10-02 14:38:20 +01:00
Behdad Esfahbod
1866e17114 Make hb_font_create_sub_font() NOT make parent immutable
We don't rely on that.  However, whenever hb_font_make_immutable()
is called, it makes its parenting chain immutable.
2015-10-02 14:21:29 +01:00
Behdad Esfahbod
980e25cad2 Fix hb-ot-shape-normalize with empty buffer
Part of https://github.com/behdad/harfbuzz/issues/136
2015-10-02 08:21:12 +01:00
Behdad Esfahbod
a5efaac4ff Replace a couple of malloc()s with calloc() 2015-10-02 08:02:29 +01:00
Behdad Esfahbod
26ba4d1e1f Fix segfault with empty buffer in hb_shape_plan_execute()
Move the empty-buffer check from hb_shape_full() to hb_shape_plan_execute().

Reported by Simon Cozens.
2015-10-02 07:25:52 +01:00
Behdad Esfahbod
432ffc47a4 1.0.4 2015-09-30 22:51:16 +01:00
Behdad Esfahbod
b47159011c Define return_trace()
Not functional change (expected!).
2015-09-29 14:57:02 +01:00
Behdad Esfahbod
c917965b9e Add missing returns
Fixes possible invalid read of two bytes.

Reported by Behzad Najjarpour Jabbari, Secunia Research.
2015-09-29 14:45:35 +01:00
Behdad Esfahbod
f3159ba514 Micro-optimize hb_language_from_string()
As measured / improved by Benson Limketkai.
2015-09-29 14:34:56 +01:00
Sascha Brawer
f2ad935e19 Handle language tags that indicate phonetic IPA transcription
The BCP-47 registry defines a variant subtag "fonipa" that can be used
in combination with arbitrary other language tags. For example,
"rm-CH-fonipa-sursilv" indicates the Sursilvan dialect of Romansh
as used in Switzerland, transcribed used the International Phonetic
Alphabet.

http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
2015-09-29 14:32:06 +01:00
Behdad Esfahbod
b8811429b6 Fix Since tags
Fixes https://github.com/behdad/harfbuzz/issues/103
2015-09-03 15:53:22 +04:30
Behdad Esfahbod
5d74ff02ab Fix Since: version tags on font and face APIs
A while back we marked every API as version:1.0.  We should fix them all
to reflect real version they were introduced.  This is a start.

Patch from Nikolay Sivov.
2015-09-03 14:55:59 +04:30
Behdad Esfahbod
7f54053974 1.0.3 2015-09-01 17:03:50 +01:00
Behdad Esfahbod
5828c45d7a [indic] Add comments to merge_clusters calls 2015-09-01 16:34:12 +01:00
Behdad Esfahbod
bdc8215949 [thai] Respect cluster-level > 0 2015-09-01 16:24:54 +01:00
Behdad Esfahbod
5b31fe383e [use] Merge /before/ reordering 2015-09-01 16:24:34 +01:00
Behdad Esfahbod
0d438f89bd [hangul] Merge /before/ reordering 2015-09-01 16:24:13 +01:00
Behdad Esfahbod
f883de664f [OT] Merge /before/ reordering 2015-09-01 16:23:40 +01:00
Behdad Esfahbod
c403d63200 [myanmar] Use buffer->sort() to sort cluster
This can possibly produce more granular clusters.
2015-09-01 16:15:25 +01:00
Behdad Esfahbod
e995d33c10 [OT] Merge clusters when reordering marks for normalization
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=541608
and cluster test.
2015-09-01 16:13:32 +01:00
Behdad Esfahbod
b6d7d161a8 [tests] Add Hebrew test for normalization under cluster-level=1
Currently fails.
https://bugzilla.gnome.org/show_bug.cgi?id=541608
2015-09-01 16:12:44 +01:00
Behdad Esfahbod
93099748e3 Minor 2015-09-01 16:11:27 +01:00
Behdad Esfahbod
85846b3de7 Use insertion-sort instead of bubble-sort
Needed for upcoming merge-clusters fix.
2015-09-01 15:07:52 +01:00
Behdad Esfahbod
fad2674874 Minor 2015-09-01 14:45:46 +01:00
Behdad Esfahbod
23e4fac6de Update git.mk from upstream 2015-08-31 19:41:01 +01:00
Behdad Esfahbod
5783e05f81 [docs] Move docs/reference/ contents into docs/ 2015-08-31 19:18:10 +01:00
Behdad Esfahbod
cd5e3a13a6 [docs] Fix out-of-tree build 2015-08-31 19:16:41 +01:00
Behdad Esfahbod
3899795fa3 Merge pull request #131 from simoncozens/docs
Use gtk-doc to build user's manual as well as reference
2015-08-31 10:46:01 +01:00
Simon Cozens
01e16e88f5 Combine user / reference information into gtk-doc generated manual. 2015-08-31 10:40:17 +01:00