From 69e9141ae3ee11c6dd7ef552d38f5b513fce3259 Mon Sep 17 00:00:00 2001 From: Daniel Hirt Date: Sun, 28 Feb 2016 17:49:20 +0200 Subject: [PATCH] Evas textblock: add a stringshare fastpath to markup_set This optimization makes use of already stringshare'd text and avoids unnecessary stringshare_add calls in markup_set. It improves the performance of edje_calc when reapplying text to the textblock part. Change-Id: I49f36e0404e44b92d3c255d0feeb126e5c4ffb44 --- src/lib/evas/canvas/evas_object_textblock.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index c5cc28f..dd886e4 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -6855,6 +6855,12 @@ _evas_textblock_text_markup_set(Eo *eo_obj EINA_UNUSED, Evas_Textblock_Data *o, Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); evas_object_async_block(obj); + if (text == o->markup_text) + { + /* Text is the same and already stringshared, do nothing */ + return; + } + else { text = eina_stringshare_add(text); if (text == o->markup_text) -- 2.7.4