From 4ed7cd1a9e61f969bcdb616a5ba9a1290b7e43b4 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Sun, 18 Mar 2012 10:40:50 +0100 Subject: Guard for an accumulated glyph count of zero in CoreText shape engine --- modules/basic/basic-coretext.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 -- cgit v1.2.1