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)

-- 


Reply via email to