summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/basic/basic-coretext.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/modules/basic/basic-coretext.c b/modules/basic/basic-coretext.c
index baacec61..edbef40f 100644
--- a/modules/basic/basic-coretext.c
+++ b/modules/basic/basic-coretext.c
@@ -225,7 +225,15 @@ run_iterator_create (struct RunIterator *iter,
iter->total_ct_i = 0;
iter->glyph_count = run_iterator_get_glyph_count (iter);
- run_iterator_set_current_run (iter, 0);
+
+ /* If CoreText did not render any glyphs for this string (can happen,
+ * e.g. a run solely consisting of a BOM), glyph_count will be zero and
+ * we immediately set the iterator variable to indicate end of glyph list.
+ */
+ if (iter->glyph_count > 0)
+ run_iterator_set_current_run (iter, 0);
+ else
+ iter->total_ct_i = -1;
}
static void