summaryrefslogtreecommitdiff
path: root/src/lib/eo/eo_base_class.c
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2018-06-05 10:56:09 -0400
committerMike Blumenkrantz <zmike@samsung.com>2018-06-05 10:56:09 -0400
commite2d143d19ed7e70480d40bbb8c6a6db29a3ab677 (patch)
tree81d3a93e27d2141c83f53d8afd3a96c47a9250e5 /src/lib/eo/eo_base_class.c
parent72ce12e550856cb97d518c1da8d882a5de77ea89 (diff)
eo: make noref also a special count
Summary: this brings down the first frame time from 2.0 sec. to something at 0.7 sec. ref T6983 Reviewers: zmike Reviewed By: zmike Subscribers: YOhoho, cedric, #committers, zmike Tags: #efl Maniphest Tasks: T6983 Differential Revision: https://phab.enlightenment.org/D6244
Diffstat (limited to 'src/lib/eo/eo_base_class.c')
-rw-r--r--src/lib/eo/eo_base_class.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index e57a245..05b81dd 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -62,6 +62,7 @@ struct _Efl_Object_Data
62 unsigned short event_cb_efl_event_callback_add_count; 62 unsigned short event_cb_efl_event_callback_add_count;
63 unsigned short event_cb_efl_event_callback_del_count; 63 unsigned short event_cb_efl_event_callback_del_count;
64 unsigned short event_cb_efl_event_del_count; 64 unsigned short event_cb_efl_event_del_count;
65 unsigned short event_cb_efl_event_noref_count;
65#endif 66#endif
66 Eina_Bool callback_stopped : 1; 67 Eina_Bool callback_stopped : 1;
67 Eina_Bool need_cleaning : 1; 68 Eina_Bool need_cleaning : 1;
@@ -1162,6 +1163,8 @@ _special_event_count_inc(Efl_Object_Data *pd, const Efl_Callback_Array_Item *it)
1162 CB_COUNT_INC(pd->event_cb_efl_event_callback_del_count); 1163 CB_COUNT_INC(pd->event_cb_efl_event_callback_del_count);
1163 else if (it->desc == EFL_EVENT_DEL) 1164 else if (it->desc == EFL_EVENT_DEL)
1164 CB_COUNT_INC(pd->event_cb_efl_event_del_count); 1165 CB_COUNT_INC(pd->event_cb_efl_event_del_count);
1166 else if (it->desc == EFL_EVENT_NOREF)
1167 CB_COUNT_INC(pd->event_cb_efl_event_noref_count);
1165 else if (it->desc == EFL_EVENT_DESTRUCT) 1168 else if (it->desc == EFL_EVENT_DESTRUCT)
1166 pd->has_destroyed_event_cb = EINA_TRUE; 1169 pd->has_destroyed_event_cb = EINA_TRUE;
1167} 1170}
@@ -1175,6 +1178,8 @@ _special_event_count_dec(Efl_Object_Data *pd, const Efl_Callback_Array_Item *it)
1175 CB_COUNT_DEC(pd->event_cb_efl_event_callback_del_count); 1178 CB_COUNT_DEC(pd->event_cb_efl_event_callback_del_count);
1176 else if (it->desc == EFL_EVENT_DEL) 1179 else if (it->desc == EFL_EVENT_DEL)
1177 CB_COUNT_DEC(pd->event_cb_efl_event_del_count); 1180 CB_COUNT_DEC(pd->event_cb_efl_event_del_count);
1181 else if (it->desc == EFL_EVENT_NOREF)
1182 CB_COUNT_DEC(pd->event_cb_efl_event_noref_count);
1178} 1183}
1179#endif 1184#endif
1180 1185
@@ -1227,6 +1232,7 @@ _eo_callback_remove_all(Efl_Object_Data *pd)
1227 pd->event_cb_efl_event_callback_add_count = 0; 1232 pd->event_cb_efl_event_callback_add_count = 0;
1228 pd->event_cb_efl_event_callback_del_count = 0; 1233 pd->event_cb_efl_event_callback_del_count = 0;
1229 pd->event_cb_efl_event_del_count = 0; 1234 pd->event_cb_efl_event_del_count = 0;
1235 pd->event_cb_efl_event_noref_count = 0;
1230#endif 1236#endif
1231} 1237}
1232 1238
@@ -1612,6 +1618,8 @@ _event_callback_call(Eo *obj_id, Efl_Object_Data *pd,
1612 (pd->event_cb_efl_event_callback_del_count == 0)) return EINA_FALSE; 1618 (pd->event_cb_efl_event_callback_del_count == 0)) return EINA_FALSE;
1613 else if ((desc == EFL_EVENT_DEL) && 1619 else if ((desc == EFL_EVENT_DEL) &&
1614 (pd->event_cb_efl_event_del_count == 0)) return EINA_FALSE; 1620 (pd->event_cb_efl_event_del_count == 0)) return EINA_FALSE;
1621 else if ((desc == EFL_EVENT_NOREF) &&
1622 (pd->event_cb_efl_event_noref_count == 0)) return EINA_FALSE;
1615#endif 1623#endif
1616 1624
1617 if (pd->event_frame) 1625 if (pd->event_frame)