summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hirt <daniel.hirt@samsung.com>2016-02-28 17:49:20 +0200
committerDaniel Hirt <daniel.hirt@samsung.com>2016-02-28 18:05:12 +0200
commitb5e35f8df6d8502bf027be783d0326adf9d5d48b (patch)
tree5d73014515e3f20644a466e6ceb5410077bc60cf
parentc7d45032dd68048a3c7c3cb74467dd683b86d83b (diff)
downloadefl-devs/herdsman/tb_opt_markup_set.tar.gz
Evas textblock: add a stringshare fastpath to markup_setdevs/herdsman/tb_opt_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.
-rw-r--r--src/lib/evas/canvas/evas_object_textblock.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c
index 158c84b80a..2da3e86179 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -6849,6 +6849,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;
+ }
+
{
text = eina_stringshare_add(text);
if (text == o->markup_text)