From 3b70b4f28f9a5c0ab24181220501506d2e61871b Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Wed, 4 Jun 2014 10:14:24 +0100 Subject: [PATCH] Evas textblock: Fix crash when cutting ligatures with formats. "fif" could cause textblock to crash. It doesn't crash anymore. It doesn't render the colours correctly either, but at least this is the first step. This is the start of fixing T1308 @bugfix --- src/lib/evas/common/evas_text_utils.c | 4 ++++ src/tests/evas/evas_test_textblock.c | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/lib/evas/common/evas_text_utils.c b/src/lib/evas/common/evas_text_utils.c index 2b43695..dc2407f 100644 --- a/src/lib/evas/common/evas_text_utils.c +++ b/src/lib/evas/common/evas_text_utils.c @@ -180,6 +180,10 @@ evas_common_text_props_index_find(const Evas_Text_Props *props, int _cutoff) int max = props->len - 1; int mid; + /* Props can be empty, verify they are not before going on. */ + if (!props->info) + return -1; + _cutoff += props->text_offset; ot_info = props->info->ot + props->start; /* Should get us closer to the right place. */ diff --git a/src/tests/evas/evas_test_textblock.c b/src/tests/evas/evas_test_textblock.c index 4c48b60..d8949e2 100644 --- a/src/tests/evas/evas_test_textblock.c +++ b/src/tests/evas/evas_test_textblock.c @@ -2612,6 +2612,9 @@ START_TEST(evas_textblock_formats) evas_object_textblock_text_markup_prepend(cur, ""); ck_assert_str_eq(evas_object_textblock_text_markup_get(tb), "abc
def"); + /* Ligatures cut by formats */ + evas_object_textblock_text_markup_set(tb, "fif"); + evas_object_textblock_size_formatted_get(tb, NULL, NULL); END_TB_TEST(); } -- 2.7.4