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.
7 years ago
Behdad Esfahbod
493a005d95
[set] In add_sorted_array(), bail if data is not sorted
7 years ago
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
7 years ago
Behdad Esfahbod
1ce7d6e215
[set] Optimize add_array() / add_sorted_array()
...
Does page lookup as needed.
7 years ago
Behdad Esfahbod
71e6adf1e2
[collect_glyphs] handle ClassDef better
7 years ago
Behdad Esfahbod
87cc5a65cb
[collect_glyphs] In PairPosFornat2 do not collect classDef1
...
The coverage already covered that.
7 years ago
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...
7 years ago
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
7 years ago
Behdad Esfahbod
9d6511a734
[set] Reduce number of preallocated pages from 8 to 1
...
Now that pagesize is 8192, this feels better.
7 years ago
Behdad Esfahbod
ae2e2b068e
Fix partial tracing debug builds
7 years ago
Behdad Esfahbod
9daa88cd79
Minor
7 years ago
Behdad Esfahbod
f424a34223
[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
7 years ago
Behdad Esfahbod
0fe62c1f33
[set] Add add_array()
...
To be used to optimize adding a whole bunch of (sorted) items at the same time,
as in CoverageFormat1.
7 years ago
Behdad Esfahbod
03b7a221f7
[debug] Use %p to print pointers
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/640
7 years ago
Nathan Willis
0dc03ef757
Indic: always hyphenate pre-base-reordering, for clarity.
7 years ago
Behdad Esfahbod
be59f3cbf4
Silence unused-variables warning on MSVC
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/635
7 years ago
David Corbett
80c1b01f05
Allow digits in language system tags
7 years ago
David Corbett
85bb89a88b
Fix string matching in parse_bool
7 years ago
Olivier Blin
0fd89dc61c
[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
7 years ago
Behdad Esfahbod
eeb26d21d4
[set] Actually commit fixes mentioned in previous commit!
7 years ago
Behdad Esfahbod
0744149cda
[set] Protect against bad input in hb_set_add_range()
7 years ago
Behdad Esfahbod
d5e29303db
[coretext] Add hb_coretext_font_create()
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/628
New API:
hb_coretext_font_create()
7 years ago
Behdad Esfahbod
9d0194b3a8
[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.
7 years ago
Behdad Esfahbod
438c325a25
[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
7 years ago
Behdad Esfahbod
be9e307a88
[ot] Ensure layout in hb_ot_layout_table_get_lookup_count()
7 years ago
Behdad Esfahbod
16fba5b215
[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
7 years ago
David Corbett
9f259769a6
Categorize U+A8B4 as Consonant_Medial
7 years ago
Behdad Esfahbod
8d55340593
Fix fallback positioning of double diacritic marks
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=787284
7 years ago
David Corbett
87d74605f5
Categorize U+0C80 as Consonant_Placeholder
7 years ago
ebraminio
7c6937e7c7
Move all references of old url to the new address ( #622 )
7 years ago
Behdad Esfahbod
baf7779d2d
Limit how much recursion GSUB/GPOS does
...
This only counts recursions right now. Good start.
Hopefully...
Fixes https://github.com/behdad/harfbuzz/issues/429
7 years ago
Behdad Esfahbod
173dab6300
Minor move
7 years ago
Behdad Esfahbod
c6173a392c
Add Offset16 and Offset32
7 years ago
Behdad Esfahbod
6f335ed1e5
Replace USHORT/SHORT/ULONG/etc with UINT16/INT16/UINT32/etc
7 years ago
Behdad Esfahbod
a130ee6df5
Remove a couple of unused consts
7 years ago
Behdad Esfahbod
e20e47eaa1
[glyf] Try fixing undefined-behavior
...
Might fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1463
7 years ago
Behdad Esfahbod
7b40876a58
[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...
7 years ago
Behdad Esfahbod
eab4feb5e2
[hmtx] Use curiously recurring template pattern
...
https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern
7 years ago
Behdad Esfahbod
977ddff1f1
[ot] Move hb_ot_face_cmap_accelerator_t
7 years ago
Behdad Esfahbod
a7f15959b5
Shuffle
7 years ago
Behdad Esfahbod
a85d7ead04
[ot] Move hb_ot_face_metrics_accelerator_t
7 years ago
Behdad Esfahbod
f00a94e1ec
Adjust privacy for recent changes
7 years ago
Behdad Esfahbod
7e2839c438
[ot] Move hb_ot_face_glyf_accelerator_t
7 years ago
Behdad Esfahbod
c4e18e54dc
[ot] Move hb_ot_face_cbdt_accelerator_t
7 years ago
Behdad Esfahbod
9b04b0384f
[ot] Fold hb_ot_face_post_accelerator_t
7 years ago
Behdad Esfahbod
702d86ba6b
[ot] Fold hb_ot_face_kern_accelerator_t
7 years ago
Behdad Esfahbod
909de95a11
Minor build fix
7 years ago
Behdad Esfahbod
e5930722d4
Fix invalid buffer access in OOM times
...
Hopefully fully fixes
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1856
7 years ago
Behdad Esfahbod
fcd6c338ff
Fix more compiler warnings
7 years ago
Behdad Esfahbod
7fdf16b2ce
Fix compiler warning
7 years ago