evas: don't initialize font multiple time.
authorCedric BAIL <cedric.bail@free.fr>
Fri, 27 Dec 2019 21:50:48 +0000 (13:50 -0800)
committerJongmin Lee <jm105.lee@samsung.com>
Sun, 5 Jan 2020 21:53:51 +0000 (06:53 +0900)
After splitting font family and size set operation, expedite lost a 10%
speed due to doing a double initialization (Once when the family is set
and one when the size is set). This was noticable in a few tight running
tests. This patch enforce that no initialization is called until the size
and the family are set.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10976

src/lib/evas/canvas/evas_object_text.c

index 3a96909..30e781b 100644 (file)
@@ -431,6 +431,8 @@ _evas_text_font_reload(Eo *eo_obj, Evas_Text_Data *o)
    Eina_Bool source_invisible = EINA_FALSE;
    Eina_List *was = NULL;
 
+   if (o->cur.size == 0 || (!o->cur.font && !o->cur.source)) return ;
+
    if (!(obj->layer->evas->is_frozen))
      {
         pass = evas_event_passes_through(eo_obj, obj);