Ebrahim Byagowi [Sun, 24 Dec 2017 22:02:46 +0000 (01:32 +0330)]
[ci] Add -Wno-attributes to djgpp, add alpine, format (#663)
Behdad Esfahbod [Sun, 24 Dec 2017 21:05:07 +0000 (16:05 -0500)]
[use] Allow ZWJ before/after Halant
https://github.com/harfbuzz/harfbuzz/issues/542#issuecomment-
353169729
Behdad Esfahbod [Wed, 20 Dec 2017 18:19:33 +0000 (13:19 -0500)]
Minor
Ebrahim Byagowi [Thu, 21 Dec 2017 16:45:37 +0000 (20:15 +0330)]
[ci] Add a DOS/djgpp compiler (#659)
Behdad Esfahbod [Wed, 20 Dec 2017 17:09:00 +0000 (12:09 -0500)]
1.7.4
Volker H. Simonis [Tue, 19 Dec 2017 10:33:25 +0000 (11:33 +0100)]
HarfBuzz 1.7.1 and later don't compile on AIX with xlC (#655)
Behdad Esfahbod [Tue, 19 Dec 2017 19:48:26 +0000 (14:48 -0500)]
[set] Handle nil set in add_range() / add_sorted_array()
Fixes https://github.com/harfbuzz/harfbuzz/issues/657
Behdad Esfahbod [Mon, 18 Dec 2017 14:18:51 +0000 (09:18 -0500)]
1.7.3
Behdad Esfahbod [Sun, 17 Dec 2017 17:32:33 +0000 (12:32 -0500)]
[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.
Behdad Esfahbod [Sat, 16 Dec 2017 16:49:39 +0000 (11:49 -0500)]
[set] In add_sorted_array(), bail if data is not sorted
Behdad Esfahbod [Sat, 16 Dec 2017 16:11:18 +0000 (11:11 -0500)]
[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
Behdad Esfahbod [Sat, 16 Dec 2017 16:36:16 +0000 (11:36 -0500)]
[set] Optimize add_array() / add_sorted_array()
Does page lookup as needed.
Behdad Esfahbod [Sat, 16 Dec 2017 16:07:37 +0000 (11:07 -0500)]
[collect_glyphs] handle ClassDef better
Behdad Esfahbod [Sat, 16 Dec 2017 14:18:07 +0000 (06:18 -0800)]
[collect_glyphs] In PairPosFornat2 do not collect classDef1
The coverage already covered that.
Behdad Esfahbod [Sat, 16 Dec 2017 14:12:06 +0000 (06:12 -0800)]
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...
Behdad Esfahbod [Fri, 15 Dec 2017 03:33:55 +0000 (19:33 -0800)]
[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
Behdad Esfahbod [Fri, 15 Dec 2017 03:04:55 +0000 (19:04 -0800)]
[set] Reduce number of preallocated pages from 8 to 1
Now that pagesize is 8192, this feels better.
Behdad Esfahbod [Fri, 15 Dec 2017 02:15:14 +0000 (18:15 -0800)]
Fix partial tracing debug builds
Behdad Esfahbod [Thu, 14 Dec 2017 21:37:48 +0000 (13:37 -0800)]
Minor
Behdad Esfahbod [Thu, 14 Dec 2017 21:30:38 +0000 (13:30 -0800)]
[set] Change pagesize from 512 bits to 8192 bits
Fixes perf regression on some heavy fonts in Chrome's FT+HB
interaction.
See:
https://bugs.chromium.org/p/chromium/issues/detail?id=782220
More work to be done:
https://bugs.chromium.org/p/chromium/issues/detail?id=794896
Behdad Esfahbod [Wed, 13 Dec 2017 21:12:20 +0000 (13:12 -0800)]
[set] Add add_array()
To be used to optimize adding a whole bunch of (sorted) items at the same time,
as in CoverageFormat1.
ebraminio [Thu, 7 Dec 2017 08:54:12 +0000 (12:24 +0330)]
[test] print commented line, like the original script (#649)
ebraminio [Thu, 7 Dec 2017 08:05:36 +0000 (11:35 +0330)]
[ci] Add an after distribution test runner (#648)
ebraminio [Thu, 7 Dec 2017 07:52:55 +0000 (11:22 +0330)]
Rewrite run-tests in python (#647)
Khaled Hosny [Wed, 6 Dec 2017 19:08:20 +0000 (21:08 +0200)]
[ci] Sort out Travis configuration
Use a matrix to avoid a gazillion if's.
ebraminio [Wed, 6 Dec 2017 14:57:27 +0000 (18:27 +0330)]
[ci] minor improvements (#644)
Khaled Hosny [Tue, 5 Dec 2017 22:49:25 +0000 (00:49 +0200)]
Run cmake tests on CI builds
Khaled Hosny [Tue, 5 Dec 2017 22:43:28 +0000 (00:43 +0200)]
Add API tests to cmake build
Khaled Hosny [Tue, 5 Dec 2017 20:52:54 +0000 (22:52 +0200)]
We are already inside “if HAVE_GLIB” check
ebraminio [Wed, 6 Dec 2017 10:52:19 +0000 (14:22 +0330)]
[ci] Don't cache msys2 folder
ebraminio [Wed, 6 Dec 2017 10:21:04 +0000 (13:51 +0330)]
[ci] Enable glib and freetype on appveyor cmake (#643)
Behdad Esfahbod [Tue, 5 Dec 2017 21:12:11 +0000 (13:12 -0800)]
[debug] Use %p to print pointers
Fixes https://github.com/harfbuzz/harfbuzz/issues/640
Ebrahim Byagowi [Tue, 5 Dec 2017 20:34:30 +0000 (00:04 +0330)]
[ci] Fix appveyor badge
Nathan Willis [Tue, 5 Dec 2017 17:43:09 +0000 (17:43 +0000)]
Indic: always hyphenate pre-base-reordering, for clarity.
Behdad Esfahbod [Tue, 5 Dec 2017 17:01:28 +0000 (09:01 -0800)]
Silence unused-variables warning on MSVC
Fixes https://github.com/harfbuzz/harfbuzz/issues/635
David Corbett [Tue, 5 Dec 2017 13:28:42 +0000 (08:28 -0500)]
Allow digits in language system tags
David Corbett [Mon, 4 Dec 2017 20:15:27 +0000 (15:15 -0500)]
Fix string matching in parse_bool
Olivier Blin [Mon, 4 Dec 2017 17:58:41 +0000 (18:58 +0100)]
[hb-ft] Fix build when Multiple Master font support is disabled in freetype
FT_Set_Var_Blend_Coordinates() is not available when "Multiple Master
font interface" is disabled in freetype's modules.cfg
Behdad Esfahbod [Mon, 4 Dec 2017 16:52:39 +0000 (08:52 -0800)]
1.7.2
Behdad Esfahbod [Sat, 2 Dec 2017 23:22:04 +0000 (15:22 -0800)]
[set] Actually commit fixes mentioned in previous commit!
Behdad Esfahbod [Sat, 2 Dec 2017 23:14:26 +0000 (15:14 -0800)]
[set] Fix recent changes
Ouch!
Add tests.
Behdad Esfahbod [Sat, 2 Dec 2017 23:06:15 +0000 (15:06 -0800)]
[set] Protect against bad input in hb_set_add_range()
Behdad Esfahbod [Wed, 29 Nov 2017 07:11:34 +0000 (23:11 -0800)]
[coretext] Add hb_coretext_font_create()
Fixes https://github.com/harfbuzz/harfbuzz/issues/628
New API:
hb_coretext_font_create()
Behdad Esfahbod [Fri, 1 Dec 2017 21:56:06 +0000 (13:56 -0800)]
[set] Optimize add_range() some more
It's as good as it gets, and seems to be on par with previous set implementation
in my benchmark.
Would be great if someone can double-check my bitops.
Behdad Esfahbod [Fri, 1 Dec 2017 21:34:14 +0000 (13:34 -0800)]
[set] Optimize add_range()
With new set implementation, this became really costy. Optimize it.
There's more to be done, but this shaves off most of the fat.
Part of fixing https://bugs.chromium.org/p/chromium/issues/detail?id=782220
Behdad Esfahbod [Fri, 1 Dec 2017 20:36:26 +0000 (12:36 -0800)]
[ot] Ensure layout in hb_ot_layout_table_get_lookup_count()
Behdad Esfahbod [Thu, 30 Nov 2017 00:18:18 +0000 (16:18 -0800)]
Add another test for previous commit
From https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4273
Behdad Esfahbod [Thu, 30 Nov 2017 00:08:11 +0000 (16:08 -0800)]
[ot] Fix Extension type recurse to disallow recursing to another Extension
Particularly hazardous if the second layer mixes forward and backward lookups.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4336
Behdad Esfahbod [Wed, 29 Nov 2017 22:20:09 +0000 (14:20 -0800)]
Try fixing Mac build with 10.12
Related
https://github.com/harfbuzz/harfbuzz/issues/345
https://github.com/harfbuzz/harfbuzz/pull/629
Behdad Esfahbod [Wed, 29 Nov 2017 06:20:57 +0000 (22:20 -0800)]
Minor
Behdad Esfahbod [Wed, 22 Nov 2017 00:36:07 +0000 (16:36 -0800)]
[doc] Optimize HarfBuzz.png; add HarfBuzz.svg
SVG is unused. Just keeping it here.
Khaled Hosny [Tue, 21 Nov 2017 22:14:29 +0000 (00:14 +0200)]
Improve the docs commit message a bit
Ebrahim Byagowi [Tue, 21 Nov 2017 06:22:18 +0000 (09:52 +0330)]
Move gh-pages docs to harfbuzz.github.io
David Corbett [Tue, 21 Nov 2017 19:16:10 +0000 (14:16 -0500)]
Categorize U+A8B4 as Consonant_Medial
ebraminio [Tue, 21 Nov 2017 06:07:26 +0000 (01:07 -0500)]
[ci] Add Oracle Developer Studio (former Sun Studio) based compiler (#621)
Behdad Esfahbod [Tue, 21 Nov 2017 03:43:22 +0000 (19:43 -0800)]
Fix fallback positioning of double diacritic marks
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=787284
Behdad Esfahbod [Tue, 21 Nov 2017 03:39:47 +0000 (19:39 -0800)]
Minor
Behdad Esfahbod [Mon, 20 Nov 2017 23:07:48 +0000 (15:07 -0800)]
[docs] s/Harfbuzz/HarfBuzz/g
David Corbett [Mon, 20 Nov 2017 18:19:34 +0000 (13:19 -0500)]
Categorize U+0C80 as Consonant_Placeholder
ebraminio [Mon, 20 Nov 2017 19:49:22 +0000 (14:49 -0500)]
Move all references of old url to the new address (#622)
Behdad Esfahbod [Wed, 15 Nov 2017 05:53:48 +0000 (21:53 -0800)]
Limit how much recursion GSUB/GPOS does
This only counts recursions right now. Good start.
Hopefully...
Fixes https://github.com/behdad/harfbuzz/issues/429
Behdad Esfahbod [Wed, 15 Nov 2017 05:27:24 +0000 (21:27 -0800)]
Minor move
Behdad Esfahbod [Wed, 15 Nov 2017 05:09:03 +0000 (21:09 -0800)]
Add Offset16 and Offset32
Behdad Esfahbod [Wed, 15 Nov 2017 05:06:07 +0000 (21:06 -0800)]
Replace USHORT/SHORT/ULONG/etc with UINT16/INT16/UINT32/etc
Behdad Esfahbod [Wed, 15 Nov 2017 04:30:03 +0000 (20:30 -0800)]
Remove a couple of unused consts
Behdad Esfahbod [Wed, 15 Nov 2017 04:25:29 +0000 (20:25 -0800)]
[glyf] Try fixing undefined-behavior
Might fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1463
Behdad Esfahbod [Wed, 15 Nov 2017 04:22:05 +0000 (20:22 -0800)]
[ot] Remove unneeded TODO item
Looks like hb-ot-font is complete after all!
CFF font names and CFF glyph metrics don't work though...
Behdad Esfahbod [Wed, 15 Nov 2017 04:16:45 +0000 (20:16 -0800)]
[hmtx] Use curiously recurring template pattern
https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern
Behdad Esfahbod [Wed, 15 Nov 2017 04:06:19 +0000 (20:06 -0800)]
[ot] Move hb_ot_face_cmap_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 04:02:24 +0000 (20:02 -0800)]
Shuffle
Behdad Esfahbod [Wed, 15 Nov 2017 04:00:34 +0000 (20:00 -0800)]
[ot] Move hb_ot_face_metrics_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 03:54:48 +0000 (19:54 -0800)]
Adjust privacy for recent changes
Behdad Esfahbod [Wed, 15 Nov 2017 03:52:09 +0000 (19:52 -0800)]
[ot] Move hb_ot_face_glyf_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 03:47:31 +0000 (19:47 -0800)]
[ot] Move hb_ot_face_cbdt_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 03:31:50 +0000 (19:31 -0800)]
[ot] Fold hb_ot_face_post_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 03:25:38 +0000 (19:25 -0800)]
[ot] Fold hb_ot_face_kern_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 00:22:52 +0000 (16:22 -0800)]
Minor build fix
Behdad Esfahbod [Tue, 14 Nov 2017 23:56:21 +0000 (15:56 -0800)]
Add test for previous commit
At some point we should run tests under valgrind...
Behdad Esfahbod [Tue, 14 Nov 2017 23:47:55 +0000 (15:47 -0800)]
Fix invalid buffer access in OOM times
Hopefully fully fixes
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1856
Behdad Esfahbod [Tue, 14 Nov 2017 22:40:21 +0000 (14:40 -0800)]
Fix more compiler warnings
Behdad Esfahbod [Tue, 14 Nov 2017 22:40:11 +0000 (14:40 -0800)]
Fix compiler warning
David Corbett [Thu, 2 Nov 2017 14:59:25 +0000 (10:59 -0400)]
Allow U+20F0 in USE clusters
Behdad Esfahbod [Tue, 14 Nov 2017 19:09:19 +0000 (11:09 -0800)]
1.7.1
Behdad Esfahbod [Tue, 14 Nov 2017 18:59:54 +0000 (10:59 -0800)]
Revert "[glib/ucdn/icu/ft/ot] Make returned funcs inert"
This reverts commit
5daf3bd4494cce6b4fb074533be9e99c4d9e0edd.
If other atexit callbacks try to destruct the objects we destruct
in atexit callbacks, bad things will happen.
I'll come up with some other way to catch premature destruction
of HB-owned objects.
Fixes https://github.com/behdad/harfbuzz/issues/618
Behdad Esfahbod [Tue, 14 Nov 2017 04:26:29 +0000 (20:26 -0800)]
Whitespace
Behdad Esfahbod [Tue, 14 Nov 2017 04:25:02 +0000 (20:25 -0800)]
Clean up GlyphID
After
4a27c17ea0234dfe33e62f5830d9f92c26d48d30 we do not need
the special GlyphID.cmp(hb_codepoint_t), so just make GlyphID
a typedef.
Fixes https://github.com/behdad/harfbuzz/issues/612
Behdad Esfahbod [Mon, 13 Nov 2017 23:04:13 +0000 (15:04 -0800)]
Implement strtod_l() on MSVC
Patch from Jean Ghali on mailing list.
Behdad Esfahbod [Mon, 13 Nov 2017 17:42:37 +0000 (09:42 -0800)]
1.7.0
Behdad Esfahbod [Sat, 11 Nov 2017 01:14:27 +0000 (17:14 -0800)]
[coretext/uniscribe/directwrite/graphite/fallback] Update for unsafe-to-break
Fixes https://github.com/behdad/harfbuzz/issues/615
We'll see which bots I broke.
Martin Hosken [Fri, 10 Nov 2017 06:47:38 +0000 (13:47 +0700)]
Fix graphite intergration reordered clusters problem
Behdad Esfahbod [Fri, 10 Nov 2017 02:09:40 +0000 (18:09 -0800)]
[kern] Fix invalid memory access if offset is zero
If offset is zero, we return Null() object. Wasn't prepared for that.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4088
Khaled Hosny [Fri, 3 Nov 2017 12:27:33 +0000 (14:27 +0200)]
[test] Use glyph ids instead of forcing ft funcs
We were using ft funcs because these are CFF fonts, but we can avoid
glyph names instead and keep testing both ot and ft.
Khaled Hosny [Thu, 2 Nov 2017 07:45:06 +0000 (09:45 +0200)]
[test] Fix another instance of component rounding
See https://github.com/behdad/harfbuzz/pull/590#issuecomment-
341194673
Behdad Esfahbod [Thu, 9 Nov 2017 01:04:31 +0000 (17:04 -0800)]
Fix indexing in unsafe-to-break marking for 'stch' feature
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4099
Behdad Esfahbod [Thu, 9 Nov 2017 01:03:55 +0000 (17:03 -0800)]
[tests/arabic-stch.tests] Don't show flags
We don't need to test the actual flag values. For unsafe-to-break,
the --verify in run-tests.sh checks what we are interested in.
Behdad Esfahbod [Thu, 9 Nov 2017 01:02:54 +0000 (17:02 -0800)]
Minor
David Corbett [Wed, 8 Nov 2017 18:15:27 +0000 (13:15 -0500)]
Mark non-initial left matras as unsafe to break
Behdad Esfahbod [Mon, 6 Nov 2017 20:40:07 +0000 (15:40 -0500)]
[kern] Implement format-2 kern subtable
Behdad Esfahbod [Mon, 6 Nov 2017 20:28:24 +0000 (15:28 -0500)]
[kern] Allow subtables longer than 64kb
Apparently calibri.ttf does this:
https://github.com/fonttools/fonttools/pull/1094#discussion_r148933791
Behdad Esfahbod [Sat, 4 Nov 2017 16:01:11 +0000 (12:01 -0400)]
[kern] Towards implementing format-2