tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=76fa1159c5713cd8e4bdacc88dd249603eacef24
commit 76fa1159c5713cd8e4bdacc88dd249603eacef24 Author: Youngbok Shin <youngb.s...@samsung.com> Date: Fri Dec 4 14:46:26 2015 +0000 Evas textblock: Skip layout logic for an text item which doesn't have font. Summary: Evas textblock could cause infinite loop if there is no fonts to use. If there is no fonts, text_props.text_len is never set. When text_props.text_len is 0, the for loop in _layout_par runs forever. It is ridiculous to use Textblock without fonts. But, it shouldn't runs infinite loop in any situation. @fix Test Plan: 1. Remove all of fonts in your EFL or Tizen device. (Or you can test it modifying some codes in Textblock by skipping load fonts.) 2. Run elementary_test -to entry3 or see any multiline textblocks. Reviewers: tasn, herdsman, woohyun Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D3402 --- src/lib/evas/canvas/evas_object_textblock.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index df4734a..51d244d 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -5173,7 +5173,8 @@ _layout_par(Ctxt *c) it = _ITEM(eina_list_data_get(i)); /* Skip visually deleted items */ - if (it->visually_deleted) + if (it->visually_deleted || + ((it->type == EVAS_TEXTBLOCK_ITEM_TEXT) && !it->format->font.font)) { //one more chance for ellipsis special cases if (c->o->ellip_prev_it == i) --