Behdad Esfahbod
cc5d3a3388
Towards using top-byte of unicode-props for more things
2015-11-04 13:22:33 -08:00
Behdad Esfahbod
8259669fbd
Minor
2015-11-02 17:44:05 -08:00
Behdad Esfahbod
5ba450407b
Make max context-length and max nesting level configurable
...
...at compile time.
2015-11-02 15:43:39 -08:00
Behdad Esfahbod
4a6b1eedbb
Fix one more -Wshadow warning
...
https://bugzilla.mozilla.org/show_bug.cgi?id=1215894
2015-10-21 11:20:55 -02: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
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
2c8b3b2e53
[debug] Print lookup index in debug-apply output
2015-08-18 14:36:43 +01:00
Behdad Esfahbod
d99f50bde0
Add missing TRACE_RETURN
2015-07-23 10:08:48 +01:00
Behdad Esfahbod
2dc8e3f470
[ot] Add missing return!
2015-07-23 10:07:21 +01:00
Behdad Esfahbod
4ba796b26e
Refactor _hb_glyph_info_is_default_ignorable()
2015-07-22 17:41:31 +01:00
Behdad Esfahbod
b931e0b0ce
Fix warnings
...
Part of https://github.com/behdad/harfbuzz/pull/68
2015-04-08 14:43:33 -07:00
Behdad Esfahbod
095a1257cc
[layout] Port sanitize() to use dispatch()
...
Needed some rework of Extension table. Hopefully I got it right, and
the new template usage doesn't break any compilers...
2015-02-25 15:43:30 -08:00
Behdad Esfahbod
40c58923cb
[layout] Refactor Lookup::dispatch()
2015-02-25 15:43:30 -08:00
Behdad Esfahbod
8e36ccfd4f
[layout] Use dispatch() for add_coverage()
2015-02-25 15:43:29 -08:00
Behdad Esfahbod
50b8dc79da
[layout] Add may_dispatch()
...
No functional change right now.
2015-02-25 15:43:29 -08:00
Behdad Esfahbod
de2118ed7a
Make sanitize() a const method
...
This makes a lot of code safer. We only try modifying the object in one
place, after making sure it's safe to do so. So, do a const_cast<> in
that one place...
2015-02-25 15:43:28 -08:00
Behdad Esfahbod
365576d246
[layout] Allocate iters in the context
...
Can be further optimized, but I think I didn't break anything.
Saves another 3% off Roboto shaping.
2015-02-25 15:43:28 -08:00
Behdad Esfahbod
514564f544
[layout] Move skippy_iter setup from constructor into init()
2015-02-25 15:43:27 -08:00
Behdad Esfahbod
b051be542a
[lookup] Add skippy_iter.reset()
...
Towards reducing the cost of initializing skippy_iter()
2015-02-25 15:43:27 -08:00
Behdad Esfahbod
2cecc38c7c
[layout] Shuffle code around
2015-02-25 15:43:27 -08:00
Behdad Esfahbod
696266981d
[layout] Merge forward and backward iterators
2015-02-25 15:43:26 -08:00
Behdad Esfahbod
1f038eec3c
[layout] Fix backward reject()
...
Has no functional effect since reject was never used with
match_glyph_data.
2015-02-25 15:43:26 -08:00
Behdad Esfahbod
37d13acd8d
[layout] Remove some unnecessary checks in skippy
2015-02-25 15:43:26 -08:00
Behdad Esfahbod
f4ee48fd7b
[layout] Remove unused wrapper method
2015-02-25 15:43:25 -08:00
Behdad Esfahbod
093c520de5
[otlayout] Mark variables that are C arrays as opposed to OT::ArrayOf
2014-12-12 21:07:53 -08:00
Behdad Esfahbod
9df0a52030
[otlayout] Avoid invalid access with Context format 3
2014-12-12 20:54:28 -08:00
Behdad Esfahbod
295ef1dd52
[ot] Debug get_coverage
2014-12-12 20:43:18 -08:00
Behdad Esfahbod
00f6a8e334
[ot] Print format in dispatch trace
2014-12-12 20:36:49 -08:00
Behdad Esfahbod
fde3e4a423
In hb_ot_collect_glyphs(), don't recurse to a lookup more than once
...
Otherwise, we might process a lookup thousands of times, with no
benefit. This pathological case was hit by Noto Nastaliq Urdu Draft
in Firefox's code to determine whether space glyph is involved in
any GSUB/GPOS rules. A test page is at http://behdad.org/urdu
See:
https://bugzilla.mozilla.org/show_bug.cgi?id=1090869
2014-10-29 11:23:08 -07:00
Behdad Esfahbod
b98c5db32d
Minor refactoring
2014-07-16 13:44:01 -04:00
Behdad Esfahbod
73e23b0acf
Whitespace
2014-07-15 18:43:49 -04:00
Behdad Esfahbod
7627100f42
Mark unsigned integer literals with the u suffix
...
Simplifies hb_in_range() calls as the type can be inferred.
The rest is obsessiveness, I admit.
2014-07-11 16:22:13 -04:00
Jonathan Kew
da13293798
Rework handling of requiredFeature to solve problem with rlig in arial.ttf from winxp
...
https://bugzilla.mozilla.org/show_bug.cgi?id=986802
Fixes https://github.com/behdad/harfbuzz/pull/39
API Change:
-hb_ot_layout_language_get_required_feature_index
+hb_ot_layout_language_get_required_feature
New API takes an extra pointer argument. Pass NULL in to get
behavior of previous API.
Reworked by behdad
2014-06-19 16:33:48 -04:00
Behdad Esfahbod
832a6f99b3
[indic] Don't reorder reph/pref if ligature was expanded
...
Normally if you want to, say, conditionally prevent a 'pref', you
would use blocking contextual matching. Some designers instead
form the 'pref' form, then undo it in context. To detect that
we now also remember glyphs that went through MultipleSubst.
In the only place that this is used, Uniscribe seems to only care
about the "last" transformation between Ligature and Multiple
substitions. Ie. if you ligate, expand, and ligate again, it
moves the pref, but if you ligate and expand it doesn't. That's
why we clear the MULTIPLIED bit when setting LIGATED.
Micro-test added. Test: U+0D2F,0D4D,0D30 with font from:
[1]
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
2014-06-05 20:36:01 -04:00
Behdad Esfahbod
b6b304f12b
[ot] Add TODO re zero-len MultipleSubst sequences
2014-06-05 17:12:54 -04:00
Behdad Esfahbod
04d894e897
Minor
2014-03-25 12:11:32 -07:00
Behdad Esfahbod
333cc6e2d1
[otlayout] Remove unused is_inplace()
...
Patch from Jonathan Kew.
2013-10-30 17:30:11 +00:00
Behdad Esfahbod
3d436d325e
[otlayout] Reset ccc when marking glyph as letter
2013-10-28 21:00:37 +01:00
Behdad Esfahbod
71b4c999a5
Revert "Zero marks by GDEF for Tibetan"
...
This reverts commit d5bd0590ae
.
The reasoning behind that logic was flawed and made under
a misunderstanding of the original problem, and caused
regressions as reported by Jonathan Kew in thread titled
"tibetan marks" in Oct 2013. Apparently I have had fixed
the original problem with this commit:
7e08f1258d
So, revert the faulty commit and everything seems to be in good
shape.
2013-10-28 00:43:27 +01:00
Behdad Esfahbod
d5bd0590ae
Zero marks by GDEF for Tibetan
...
See:
http://lists.freedesktop.org/archives/harfbuzz/2013-April/003101.html
2013-10-18 18:17:29 +02:00
Behdad Esfahbod
a1f7b28561
[otlayout] Switch over from old is_a_ligature() to IS_LIGATED
...
Impact should be minimal and positive.
2013-10-18 11:25:24 +02:00
Behdad Esfahbod
09675a8115
[otlayout] Add HB_OT_LAYOUT_GLYPH_PROPS_LIGATED
...
Currently unused.
2013-10-18 11:25:24 +02:00
Behdad Esfahbod
05ad6b50ac
[otlayout] Add HB_OT_LAYOUT_GLYPH_PROPS_SUBSTITUTED
...
Currently unused.
2013-10-18 11:21:15 +02:00
Behdad Esfahbod
101303dbf7
[otlayout] More shuffling around
2013-10-18 11:21:15 +02:00
Behdad Esfahbod
91689de260
[otlayout] Add _hb_glyph_info_set_glyph_props()
...
No functional change.
2013-10-18 11:21:15 +02:00
Behdad Esfahbod
a016174658
[otlayout] Simplify set_class() usage
2013-10-18 11:21:15 +02:00
Behdad Esfahbod
3ddf892b53
[otlayout] Renaming
2013-10-18 11:21:15 +02:00
Behdad Esfahbod
3c3df9cba1
[otlayout] Minor
2013-10-17 13:58:31 +02:00