Evas textblock: add a stringshare fastpath to markup_set 21/66921/2
authorDaniel Hirt <daniel.hirt@samsung.com>
Sun, 28 Feb 2016 15:49:20 +0000 (17:49 +0200)
committerYoungbok Shin <youngb.shin@samsung.com>
Mon, 25 Apr 2016 04:24:57 +0000 (21:24 -0700)
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

index c5cc28f..dd886e4 100644 (file)
@@ -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)