edje: Skip calculation for Evas Textblock when text is never set 59/80959/1
authorYoungbok Shin <youngb.shin@samsung.com>
Thu, 21 Jul 2016 06:07:13 +0000 (15:07 +0900)
committerYoungbok Shin <youngb.shin@samsung.com>
Thu, 21 Jul 2016 06:07:13 +0000 (15:07 +0900)
It may improve Edje's calculation performance over almost cases.
@tizen_fix

Change-Id: Idbc0fe6817792bbfe85dc7ce8678ed89eb275fdc

src/lib/edje/edje_calc.c
src/lib/edje/edje_private.h

index fe4f92f..ef47b81 100644 (file)
@@ -1429,6 +1429,16 @@ _edje_part_recalc_single_textblock(FLOAT_T sc,
    if ((ep->type != EDJE_RP_TYPE_TEXT) ||
        (!ep->typedata.text))
      return;
+
+   // TIZEN_ONLY(20150921): Skip calculation for Evas Textblock when text is never set.
+   if (!(ep->typedata.text->text_enabled) && (ep->part->entry_mode == EDJE_ENTRY_EDIT_MODE_NONE) &&
+       (!ep->typedata.text->text) && (!edje_string_get(&chosen_desc->text.text)) &&
+       (chosen_desc && !(chosen_desc->text.id_text_source >= 0)))
+     return;
+
+   if (!ep->typedata.text->text_enabled) ep->typedata.text->text_enabled = EINA_TRUE;
+   //
+
    if (chosen_desc)
      {
         Evas_Coord tw, th, ins_l, ins_r, ins_t, ins_b;
index 4935823..2424f58 100644 (file)
@@ -1872,6 +1872,10 @@ struct _Edje_Real_Part_Text
       FLOAT_T             align_x, align_y; // 16
    } cache;
    Edje_Part_Description_Spec_Filter filter; // 8
+
+   // TIZEN_ONLY(20150921): Skip calculation for Evas Textblock when text is never set.
+   Eina_Bool              text_enabled : 1;
+   //
 }; // 88
 // FIXME make text a potiner to struct and alloc at end
 // if part type is TEXT move common members textblock +