platform/upstream/libHarfBuzzSharp.git
9 years agoDon't apply Arabic shaping to vertical text.
Jonathan Kew [Thu, 23 Apr 2015 11:45:02 +0000 (12:45 +0100)]
Don't apply Arabic shaping to vertical text.

9 years agoUpdate check-libstdc++ for clang
Behdad Esfahbod [Fri, 24 Apr 2015 01:56:24 +0000 (18:56 -0700)]
Update check-libstdc++ for clang

9 years ago[test] Ignor 'n' and 'i' in hb-unicode-encode
Behdad Esfahbod [Thu, 23 Apr 2015 21:32:33 +0000 (14:32 -0700)]
[test] Ignor 'n' and 'i' in hb-unicode-encode

Allows accepting uniXXXX format.

9 years ago[coretext] Oops; fix issue number for previous commit
Behdad Esfahbod [Wed, 22 Apr 2015 02:23:27 +0000 (19:23 -0700)]
[coretext] Oops; fix issue number for previous commit

9 years ago[coretext] Fix positioning with trailing whitespace
Behdad Esfahbod [Wed, 22 Apr 2015 02:21:32 +0000 (19:21 -0700)]
[coretext] Fix positioning with trailing whitespace

Fixes https://code.google.com/p/chromium/issues/detail?id=476913

9 years ago[ot-font] Accept MS Symbol cmap if nothing else found
Behdad Esfahbod [Fri, 17 Apr 2015 20:08:08 +0000 (13:08 -0700)]
[ot-font] Accept MS Symbol cmap if nothing else found

9 years agoRevert "Add MSVC pragma for UTF-8 source code"
Behdad Esfahbod [Tue, 14 Apr 2015 20:32:22 +0000 (13:32 -0700)]
Revert "Add MSVC pragma for UTF-8 source code"

This reverts commit 89cbd4d9533011fb5487caa99a0cd58923e7cf59.

See discussion:
https://bugzilla.gnome.org/show_bug.cgi?id=747772

9 years agoWhitespace
Behdad Esfahbod [Tue, 14 Apr 2015 06:51:45 +0000 (23:51 -0700)]
Whitespace

9 years agoMerge pull request #86 from cpfair/hb-shape-output-help-improvement
Behdad Esfahbod [Tue, 14 Apr 2015 06:40:35 +0000 (23:40 -0700)]
Merge pull request #86 from cpfair/hb-shape-output-help-improvement

Improve hb-shape/hb-view's help text w.r.t. output options

9 years agoAdd MSVC pragma for UTF-8 source code
Behdad Esfahbod [Mon, 13 Apr 2015 19:27:08 +0000 (12:27 -0700)]
Add MSVC pragma for UTF-8 source code

Not sure we have any right now; motivated by this:
https://bugzilla.gnome.org/show_bug.cgi?id=747772

9 years agoMerge pull request #99 from khaledhosny/introspection-fixes2
Behdad Esfahbod [Fri, 10 Apr 2015 21:34:05 +0000 (14:34 -0700)]
Merge pull request #99 from khaledhosny/introspection-fixes2

More ntrospection fixes

9 years ago[bindings] Fix hb_buffer_get_segment_properties
Khaled Hosny [Fri, 10 Apr 2015 16:14:45 +0000 (18:14 +0200)]
[bindings] Fix hb_buffer_get_segment_properties

Annotate the output parameter.

9 years agoMerge branch 'hb-fc'
Behdad Esfahbod [Fri, 10 Apr 2015 19:21:04 +0000 (12:21 -0700)]
Merge branch 'hb-fc'

9 years agoMerge pull request #98 from KonstantinRitt/WEC2013
Behdad Esfahbod [Fri, 10 Apr 2015 19:19:57 +0000 (12:19 -0700)]
Merge pull request #98 from KonstantinRitt/WEC2013

Fix build on WEC2013

9 years ago[bindings] Fix ownership of returned hb_language_t
Khaled Hosny [Fri, 10 Apr 2015 15:49:01 +0000 (17:49 +0200)]
[bindings] Fix ownership of returned hb_language_t

It should not be freed by the caller.

9 years agoFix build on WEC2013
Konstantin Ritt [Fri, 10 Apr 2015 13:18:01 +0000 (17:18 +0400)]
Fix build on WEC2013

Based on patch from Björn Breitmeyer

9 years ago[utils] Add hb-fc-list
Behdad Esfahbod [Wed, 6 Aug 2014 20:49:51 +0000 (16:49 -0400)]
[utils] Add hb-fc-list

This is a tool that lists all fonts that can render a given string.
It uses hb_shape() to do so, and as such is aware of HarfBuzz's
normalizer.

9 years agoRelax inert checks
Behdad Esfahbod [Wed, 6 Aug 2014 19:36:41 +0000 (15:36 -0400)]
Relax inert checks

Previously, when creating an object from inert inputs (eg:
"hb_font_create(hb_face_get_empty())") we returned the inert
empty object.  This is not helpful as there are legitimate
usecases to do that.

We now never return the inert object unless allocation failed.

Tests are revised to reflect.

9 years ago[util/hb-view] Fix rendering with all combinations of negative scales
Behdad Esfahbod [Thu, 9 Apr 2015 22:52:26 +0000 (15:52 -0700)]
[util/hb-view] Fix rendering with all combinations of negative scales

9 years ago[util] Minor
Behdad Esfahbod [Thu, 9 Apr 2015 22:17:16 +0000 (15:17 -0700)]
[util] Minor

9 years ago[util] Accept comma as well as space when separating components of args
Behdad Esfahbod [Thu, 9 Apr 2015 22:04:42 +0000 (15:04 -0700)]
[util] Accept comma as well as space when separating components of args

Applies to --font-size and --margin.

Hopefully the scanf usage here doesn't have compatibility issues
(star being counted in the return value, etc).

9 years agoMinor rename
Behdad Esfahbod [Thu, 9 Apr 2015 19:04:14 +0000 (12:04 -0700)]
Minor rename

9 years agoMinor
Behdad Esfahbod [Wed, 8 Apr 2015 23:26:24 +0000 (16:26 -0700)]
Minor

9 years agoFixup
Behdad Esfahbod [Wed, 8 Apr 2015 23:26:16 +0000 (16:26 -0700)]
Fixup

9 years agoFix warnings
Behdad Esfahbod [Wed, 8 Apr 2015 21:39:00 +0000 (14:39 -0700)]
Fix warnings

Part of https://github.com/behdad/harfbuzz/pull/68

9 years agoErr, instead of warn, if mutex / atomic / unicode funcs are missing
Behdad Esfahbod [Wed, 8 Apr 2015 20:25:04 +0000 (13:25 -0700)]
Err, instead of warn, if mutex / atomic / unicode funcs are missing

Hopefully this results in fewer badly built HarfBuzz integrations.

9 years agoFix unused var warnings
Behdad Esfahbod [Wed, 8 Apr 2015 20:03:27 +0000 (13:03 -0700)]
Fix unused var warnings

9 years agoMinor refactoring to the atomics implementation
Konstantin Ritt [Fri, 27 Mar 2015 20:49:33 +0000 (00:49 +0400)]
Minor refactoring to the atomics implementation

s/atomic_int/atomic_int_impl/ and s/atomic_ptr/atomic_ptr_impl/
to bring it in par with hb_mutex_impl_t, then re-introduce
hb_atomic_int_t as a wrapper around hb_atomic_int_impl_t.

In hb_reference_count_t, make it clear the non-atomic get and set
are intentional due to nature of the cases they are used in
(comparison to -1 and the debug output/tracing).

9 years agoMinor
Behdad Esfahbod [Wed, 8 Apr 2015 19:52:06 +0000 (12:52 -0700)]
Minor

9 years agoAllow implementing atomic and mutex ops in config
Behdad Esfahbod [Wed, 8 Apr 2015 19:49:38 +0000 (12:49 -0700)]
Allow implementing atomic and mutex ops in config

Motivated by
https://github.com/behdad/harfbuzz/pull/92

9 years agoMinor
Behdad Esfahbod [Wed, 8 Apr 2015 19:49:23 +0000 (12:49 -0700)]
Minor

9 years ago[test] Use /usr/bin/env python instead of /usr/bin/python
Behdad Esfahbod [Mon, 6 Apr 2015 21:51:31 +0000 (14:51 -0700)]
[test] Use /usr/bin/env python instead of /usr/bin/python

Bug 76494 - #!/usr/bin/python in testsuite

https://bugs.freedesktop.org/show_bug.cgi?id=76494

9 years agoMerge pull request #93 from ebraminio/archpy3
Behdad Esfahbod [Mon, 6 Apr 2015 21:41:32 +0000 (14:41 -0700)]
Merge pull request #93 from ebraminio/archpy3

Make hb_test_tools.py compatible with python 3

9 years agoMSVC 2015 supports snprintf and not _snprintf
Behdad Esfahbod [Wed, 1 Apr 2015 18:05:59 +0000 (11:05 -0700)]
MSVC 2015 supports snprintf and not _snprintf

9 years agoMove WinCE define to better place
Behdad Esfahbod [Wed, 1 Apr 2015 18:04:33 +0000 (11:04 -0700)]
Move WinCE define to better place

9 years agoMake hb_test_tools.py compatible with python 3
Ebrahim Byagowi [Sun, 29 Mar 2015 22:57:14 +0000 (03:27 +0430)]
Make hb_test_tools.py compatible with python 3

On ArchLinux, /usr/bin/python is linked to python 3 so
HarfBuzz `make check` is broken there.

This makes hb_test_tools.py compatible with python 3 while
no breaking it on python 2.

9 years agoFix VC++ /analyze warnings
Behdad Esfahbod [Thu, 26 Mar 2015 18:13:53 +0000 (14:13 -0400)]
Fix VC++ /analyze warnings

out\debug\hb-buffer-deserialize-text.rl(47) : warning C6001: Using
uninitialized memory 'pos'.

9 years agoMerge pull request #90 from khaledhosny/introspection-fixes
Behdad Esfahbod [Sun, 22 Mar 2015 20:18:57 +0000 (16:18 -0400)]
Merge pull request #90 from khaledhosny/introspection-fixes

[bindings] Fix *_from_string functions

9 years ago[bindings] Fix *_from_string functions
Khaled Hosny [Sun, 22 Mar 2015 18:29:10 +0000 (20:29 +0200)]
[bindings] Fix *_from_string functions

Without the element-type they will be getting garbage, at least with
Python.

9 years ago0.9.40
Behdad Esfahbod [Fri, 20 Mar 2015 22:03:02 +0000 (18:03 -0400)]
0.9.40

9 years agoFix reverse_range() for empty range
Behdad Esfahbod [Fri, 20 Mar 2015 20:08:38 +0000 (16:08 -0400)]
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

9 years agoFix previous commit
Behdad Esfahbod [Wed, 4 Mar 2015 23:47:25 +0000 (15:47 -0800)]
Fix previous commit

I misunderstood how which works.

9 years agoAccept glibtoolize as libtoolize
Behdad Esfahbod [Wed, 4 Mar 2015 23:43:05 +0000 (15:43 -0800)]
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.

9 years ago0.9.39
Behdad Esfahbod [Wed, 4 Mar 2015 20:32:03 +0000 (12:32 -0800)]
0.9.39

9 years agoFix hb-uniscribe build
Behdad Esfahbod [Wed, 4 Mar 2015 20:03:39 +0000 (12:03 -0800)]
Fix hb-uniscribe build

9 years agoFix reverse_range() to only reverse alt array if positions are used
Behdad Esfahbod [Tue, 3 Mar 2015 00:06:55 +0000 (16:06 -0800)]
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!

9 years agoBetter error message if libtool is not installed
Behdad Esfahbod [Thu, 26 Feb 2015 21:58:32 +0000 (13:58 -0800)]
Better error message if libtool is not installed

Fixes https://github.com/behdad/harfbuzz/pull/88

9 years agoClean up gtk-doc.make
Behdad Esfahbod [Thu, 26 Feb 2015 21:55:34 +0000 (13:55 -0800)]
Clean up gtk-doc.make

9 years agoInstall git.mk in docs/
Behdad Esfahbod [Thu, 26 Feb 2015 21:53:05 +0000 (13:53 -0800)]
Install git.mk in docs/

9 years agoUpdate git.mk from upstream
Behdad Esfahbod [Thu, 26 Feb 2015 21:52:50 +0000 (13:52 -0800)]
Update git.mk from upstream

9 years agoMinor refactoring
Behdad Esfahbod [Sat, 21 Feb 2015 13:51:17 +0000 (16:51 +0300)]
Minor refactoring

9 years agoMinor
Behdad Esfahbod [Sat, 21 Feb 2015 13:49:15 +0000 (16:49 +0300)]
Minor

9 years agoTypo
Behdad Esfahbod [Sat, 21 Feb 2015 13:30:28 +0000 (16:30 +0300)]
Typo

9 years agoMinor
Behdad Esfahbod [Sat, 21 Feb 2015 13:29:08 +0000 (16:29 +0300)]
Minor

9 years ago[layout] Fix comparison of GlyphID and hb_codepoint_t
Behdad Esfahbod [Sat, 21 Feb 2015 09:50:01 +0000 (12:50 +0300)]
[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).

9 years agoRemove unused (and wrong as of a few commits ago) cmp() function
Behdad Esfahbod [Sat, 21 Feb 2015 09:41:08 +0000 (12:41 +0300)]
Remove unused (and wrong as of a few commits ago) cmp() function

9 years agoMinor
Behdad Esfahbod [Sat, 21 Feb 2015 09:31:59 +0000 (12:31 +0300)]
Minor

9 years agoMinor
Behdad Esfahbod [Sat, 21 Feb 2015 08:45:22 +0000 (11:45 +0300)]
Minor

9 years ago[layout] If lookup has only one subtable, move the forward loop down to subtable
Behdad Esfahbod [Thu, 19 Feb 2015 14:30:05 +0000 (17:30 +0300)]
[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.

9 years ago[layout] Add apply_forward / apply_backward
Behdad Esfahbod [Thu, 19 Feb 2015 14:15:05 +0000 (17:15 +0300)]
[layout] Add apply_forward / apply_backward

9 years ago[layout] Remove unneeded return value from apply()
Behdad Esfahbod [Thu, 19 Feb 2015 08:33:30 +0000 (11:33 +0300)]
[layout] Remove unneeded return value from apply()

9 years agoMinor simpilfy BEInt
Behdad Esfahbod [Thu, 19 Feb 2015 14:03:02 +0000 (17:03 +0300)]
Minor simpilfy BEInt

9 years agoOptimize IntType comparison to avoid branches for 16bit numbers
Behdad Esfahbod [Thu, 19 Feb 2015 13:57:12 +0000 (16:57 +0300)]
Optimize IntType comparison to avoid branches for 16bit numbers

9 years agoMinor simplify IntType
Behdad Esfahbod [Thu, 19 Feb 2015 13:55:51 +0000 (16:55 +0300)]
Minor simplify IntType

9 years ago[layout] Minor
Behdad Esfahbod [Thu, 19 Feb 2015 07:47:18 +0000 (10:47 +0300)]
[layout] Minor

9 years ago[layout] Minor
Behdad Esfahbod [Thu, 19 Feb 2015 07:42:41 +0000 (10:42 +0300)]
[layout] Minor

9 years ago[layout] Don't check glyph props against lookup flags when recursing
Behdad Esfahbod [Thu, 19 Feb 2015 07:40:23 +0000 (10:40 +0300)]
[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.

9 years ago[layout] Port sanitize() to use dispatch()
Behdad Esfahbod [Thu, 19 Feb 2015 07:29:41 +0000 (10:29 +0300)]
[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...

9 years agoRemove unused macro
Behdad Esfahbod [Wed, 18 Feb 2015 10:45:03 +0000 (13:45 +0300)]
Remove unused macro

9 years ago[layout] Refactor Lookup::dispatch()
Behdad Esfahbod [Wed, 18 Feb 2015 10:18:46 +0000 (13:18 +0300)]
[layout] Refactor Lookup::dispatch()

9 years ago[layout] Refactor get_subtable()
Behdad Esfahbod [Wed, 18 Feb 2015 10:09:54 +0000 (13:09 +0300)]
[layout] Refactor get_subtable()

9 years agoMinor
Behdad Esfahbod [Tue, 17 Feb 2015 16:18:07 +0000 (19:18 +0300)]
Minor

9 years ago[layout] Use dispatch() for add_coverage()
Behdad Esfahbod [Tue, 17 Feb 2015 16:15:34 +0000 (19:15 +0300)]
[layout] Use dispatch() for add_coverage()

9 years ago[layout] Add may_dispatch()
Behdad Esfahbod [Tue, 17 Feb 2015 15:14:17 +0000 (18:14 +0300)]
[layout] Add may_dispatch()

No functional change right now.

9 years agoMake sanitize() a const method
Behdad Esfahbod [Tue, 17 Feb 2015 14:27:44 +0000 (17:27 +0300)]
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...

9 years agoMinor
Behdad Esfahbod [Tue, 17 Feb 2015 13:05:30 +0000 (16:05 +0300)]
Minor

9 years agoRemove unnecessary check in sanitize
Behdad Esfahbod [Tue, 17 Feb 2015 13:04:07 +0000 (16:04 +0300)]
Remove unnecessary check in sanitize

9 years ago[layout] Allocate iters in the context
Behdad Esfahbod [Thu, 29 Jan 2015 12:59:42 +0000 (13:59 +0100)]
[layout] Allocate iters in the context

Can be further optimized, but I think I didn't break anything.

Saves another 3% off Roboto shaping.

9 years ago[layout] Move skippy_iter setup from constructor into init()
Behdad Esfahbod [Thu, 29 Jan 2015 12:48:48 +0000 (13:48 +0100)]
[layout] Move skippy_iter setup from constructor into init()

9 years ago[lookup] Add skippy_iter.reset()
Behdad Esfahbod [Thu, 29 Jan 2015 12:40:39 +0000 (13:40 +0100)]
[lookup] Add skippy_iter.reset()

Towards reducing the cost of initializing skippy_iter()

9 years ago[layout] Shuffle code around
Behdad Esfahbod [Thu, 29 Jan 2015 12:32:05 +0000 (13:32 +0100)]
[layout] Shuffle code around

9 years ago[layout] Merge forward and backward iterators
Behdad Esfahbod [Thu, 29 Jan 2015 12:08:41 +0000 (13:08 +0100)]
[layout] Merge forward and backward iterators

9 years ago[layout] Fix backward reject()
Behdad Esfahbod [Thu, 29 Jan 2015 12:05:25 +0000 (13:05 +0100)]
[layout] Fix backward reject()

Has no functional effect since reject was never used with
match_glyph_data.

9 years ago[layout] Remove some unnecessary checks in skippy
Behdad Esfahbod [Thu, 29 Jan 2015 10:38:01 +0000 (11:38 +0100)]
[layout] Remove some unnecessary checks in skippy

9 years ago[lookup] Don't initialize skippy if coverage match fails
Behdad Esfahbod [Thu, 29 Jan 2015 10:08:43 +0000 (11:08 +0100)]
[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.

9 years ago[layout] Use setter method to set c->lookup_props
Behdad Esfahbod [Thu, 29 Jan 2015 07:01:12 +0000 (23:01 -0800)]
[layout] Use setter method to set c->lookup_props

9 years ago[layout] Remove unused wrapper method
Behdad Esfahbod [Thu, 29 Jan 2015 06:53:54 +0000 (22:53 -0800)]
[layout] Remove unused wrapper method

9 years agoAdd hb_frozen_set_t
Behdad Esfahbod [Thu, 29 Jan 2015 05:46:07 +0000 (21:46 -0800)]
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 :(.

9 years agoHide internals of lookup accelerators
Behdad Esfahbod [Thu, 29 Jan 2015 04:55:42 +0000 (20:55 -0800)]
Hide internals of lookup accelerators

9 years ago[util] Add convenience "make lib" target
Behdad Esfahbod [Thu, 29 Jan 2015 04:29:48 +0000 (20:29 -0800)]
[util] Add convenience "make lib" target

9 years agoMerge pull request #85 from KonstantinRitt/define_inline
Behdad Esfahbod [Wed, 25 Feb 2015 23:34:34 +0000 (15:34 -0800)]
Merge pull request #85 from KonstantinRitt/define_inline

Fix build with MSVC on CE

9 years agoStop hb-shape docs leaking into hb-view
Collin Fair [Sat, 14 Feb 2015 14:59:44 +0000 (09:59 -0500)]
Stop hb-shape docs leaking into hb-view

9 years ago'All' of the above, not 'each'
Collin Fair [Sat, 14 Feb 2015 14:44:00 +0000 (09:44 -0500)]
'All' of the above, not 'each'

9 years agoRemove reference to --help-output-content in --help-output (as --help-output-format...
Collin Fair [Sat, 14 Feb 2015 14:32:04 +0000 (09:32 -0500)]
Remove reference to --help-output-content in --help-output (as --help-output-format's options aren't available in hb-view)

9 years agoAdd serialization syntax documentation. Clarify naming and wording in --help-output...
Collin Fair [Sat, 14 Feb 2015 14:29:35 +0000 (09:29 -0500)]
Add serialization syntax documentation. Clarify naming and wording in --help-output/--help-format

9 years agoFix build with MSVC on CE
Konstantin Ritt [Fri, 13 Feb 2015 20:58:51 +0000 (00:58 +0400)]
Fix build with MSVC on CE

This code is C++ only. There isn't a single C++ compiler that fails to
understand the "inline" keyword, since it's required by C++98. Any
compiler older than C++98 is likely to choke on the template usage
further down, so this isn't necessary.

Moreover, the C++ standard says you cannot define macros.
[lib.macro.names] says "Nor shall such a translation unit define macros
for names lexically identical to keywords." -- technically, it's a
promise that the Standard Library headers won't do it, the wording means
that the entire translation unit won't do it, which implies no source
can do it.

MSVC complains about it:
fatal error C1189: #error : The C++ Standard Library forbids macroizing
keywords. Enable warning C4005 to find the forbidden macro.

Author: Thiago Macieira <thiago.macieira@intel.com>

9 years ago[ft] Handle negative scales with vertical writing
Behdad Esfahbod [Wed, 28 Jan 2015 20:40:40 +0000 (12:40 -0800)]
[ft] Handle negative scales with vertical writing

9 years ago[coretext] Don't generate notdef glyph for default-ignorables
Behdad Esfahbod [Wed, 28 Jan 2015 18:51:33 +0000 (10:51 -0800)]
[coretext] Don't generate notdef glyph for default-ignorables

As discovered on Chrome Mac:
https://code.google.com/p/chromium/issues/detail?id=452326

9 years ago[coretext] Unbreak glyph positioning in presence of notdef runs
Behdad Esfahbod [Wed, 28 Jan 2015 18:43:32 +0000 (10:43 -0800)]
[coretext] Unbreak glyph positioning in presence of notdef runs

As discovered on Chrome Mac:
https://code.google.com/p/chromium/issues/detail?id=452326

This was originally broken in:

commit 5a0eed3b50629be4826e4e9428f2c3255195395d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Aug 11 23:47:16 2014 -0400

    [coretext] Implement vertical shaping

9 years agoMinor optimization
Behdad Esfahbod [Tue, 27 Jan 2015 20:26:04 +0000 (12:26 -0800)]
Minor optimization