Behdad Esfahbod
9e401f6890
Fix reverse_range() for empty range
...
Fixes coretext notdef loop consisting of all default_ignorable glyphs
https://code.google.com/p/chromium/issues/detail?id=464755
2015-03-20 16:08:38 -04:00
Behdad Esfahbod
7481bd49d5
Fix previous commit
...
I misunderstood how which works.
2015-03-04 15:47:25 -08:00
Behdad Esfahbod
6763e21afb
Accept glibtoolize as libtoolize
...
Of course, we don't really run it, autoreconf does. We just
err if neither is available. glibtoolize is the name it is
shipped under on OS X. Reported by Adam.
2015-03-04 15:43:05 -08:00
Behdad Esfahbod
02a04e6afb
0.9.39
2015-03-04 12:32:03 -08:00
Behdad Esfahbod
98e3ea8e34
Fix hb-uniscribe build
2015-03-04 12:03:39 -08:00
Behdad Esfahbod
8ac345e5c0
Fix reverse_range() to only reverse alt array if positions are used
...
In hb-coretext, when we were using scratch buffer for book-keeping,
a reverse_range() caused by the notdef-insertion loop could mess up
our log_clusters. Ouch!
2015-03-02 16:06:55 -08:00
Behdad Esfahbod
1e03d7ac83
Better error message if libtool is not installed
...
Fixes https://github.com/behdad/harfbuzz/pull/88
2015-02-26 13:59:13 -08:00
Behdad Esfahbod
6c918e2997
Clean up gtk-doc.make
2015-02-26 13:59:13 -08:00
Behdad Esfahbod
5ec5875acb
Install git.mk in docs/
2015-02-26 13:59:13 -08:00
Behdad Esfahbod
d146678d10
Update git.mk from upstream
2015-02-26 13:59:13 -08:00
Behdad Esfahbod
5f541f8f7b
Minor refactoring
2015-02-25 15:43:35 -08:00
Behdad Esfahbod
ef79bdf73b
Minor
2015-02-25 15:43:35 -08:00
Behdad Esfahbod
68e04afbb1
Typo
2015-02-25 15:43:34 -08:00
Behdad Esfahbod
55553699b3
Minor
2015-02-25 15:43:34 -08:00
Behdad Esfahbod
5175300fba
[layout] Fix comparison of GlyphID and hb_codepoint_t
...
Before, the IntType::cmp functions providing this and was truncating
the hb_codepoint_t to 16bits before comparison. I have no idea how
this was never discovered, and I'm too lazy to try to reproduce this
with Pango (which uses non-16bit codepoint numbers for missing glyphs).
2015-02-25 15:43:34 -08:00
Behdad Esfahbod
7cce809cb1
Remove unused (and wrong as of a few commits ago) cmp() function
2015-02-25 15:43:34 -08:00
Behdad Esfahbod
8e3d4bae03
Minor
2015-02-25 15:43:33 -08:00
Behdad Esfahbod
f47cf1f12d
Minor
2015-02-25 15:43:33 -08:00
Behdad Esfahbod
640b66c634
[layout] If lookup has only one subtable, move the forward loop down to subtable
...
I was hoping to see a nice speedup, but it resulted in a very minor one.
2015-02-25 15:43:33 -08:00
Behdad Esfahbod
e2f50f2a7e
[layout] Add apply_forward / apply_backward
2015-02-25 15:43:32 -08:00
Behdad Esfahbod
1d4a328472
[layout] Remove unneeded return value from apply()
2015-02-25 15:43:32 -08:00
Behdad Esfahbod
bbdd6fd21c
Minor simpilfy BEInt
2015-02-25 15:43:32 -08:00
Behdad Esfahbod
88a399acdc
Optimize IntType comparison to avoid branches for 16bit numbers
2015-02-25 15:43:32 -08:00
Behdad Esfahbod
37de2d5331
Minor simplify IntType
2015-02-25 15:43:31 -08:00
Behdad Esfahbod
bd047d3b7f
[layout] Minor
2015-02-25 15:43:31 -08:00
Behdad Esfahbod
b9d3f60520
[layout] Minor
2015-02-25 15:43:31 -08:00
Behdad Esfahbod
1a2322134a
[layout] Don't check glyph props against lookup flags when recursing
...
Shouldn't be needed. I have a hard time imagining this breaking any
legitimate use case.
2015-02-25 15:43:30 -08: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
758fb20630
Remove unused macro
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
70366f5d19
[layout] Refactor get_subtable()
2015-02-25 15:43:29 -08:00
Behdad Esfahbod
f72f326aea
Minor
2015-02-25 15:43:29 -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
6759ed95a3
Minor
2015-02-25 15:43:28 -08:00
Behdad Esfahbod
6b599dac1f
Remove unnecessary check in sanitize
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
baa14e1814
[lookup] Don't initialize skippy if coverage match fails
...
Currently:
- Initializing skippy is very expensive,
- Our lookup accelerator (using set-digests) can be very ineffecite,
As such, we end up many times initializing skippy but then failing
coverage check. Reordering fixes that.
When, later, we fix our accelerator to have truly small false-positive
rate (for example by using the frozen-sets), then we might want to
reorder these checks such that we wouldn't calculate coverage number
if skippy is going to fail.
This shows a 5% speedup with Roboto already.
2015-02-25 15:43:26 -08:00
Behdad Esfahbod
7788993bc1
[layout] Use setter method to set c->lookup_props
2015-02-25 15:43:25 -08:00
Behdad Esfahbod
f4ee48fd7b
[layout] Remove unused wrapper method
2015-02-25 15:43:25 -08:00
Behdad Esfahbod
7b7129c7a9
Add hb_frozen_set_t
...
I experimented with replacing use of hb_set_digest_t with this new
hb_frozen_set_t, hoping to get a huge speedup for busy lookups
(like kern lookup in Roboto), but I only got 6% speendup in Roboto
and 4% in NotoNastaliqUrduDraft :(.
2015-02-25 15:43:25 -08:00
Behdad Esfahbod
241eac9559
Hide internals of lookup accelerators
2015-02-25 15:43:25 -08:00
Behdad Esfahbod
e2d4e8480d
[util] Add convenience "make lib" target
2015-02-25 15:43:24 -08:00