forked from enlightenment/efl
ecore_evas: prevent duplicated ecore_evas registration
Summary:
After a44697c37a
, we can register same ecore_evas
to ecore_evases using ecore_evas_input_event_register.
(ecore_evas_input_event_register -> ecore_evas_done -> _ecore_evas_register)
This can make infinite loop in EINA_INLIST_FOREACH(ecore_evases, ee) because
next inlist of ecore_evases is ecore_evases after double call of
_ecore_evas_register.
This patch prevent it.
Test Plan:
Ecore_Evas *ee = ecore_evas_new(NULL, 0, 0, 800, 600, NULL);
ecore_evas_input_event_register(ee);
(part of document of ecore_fb_input_device_window_set)
Check that there is no infinite loop
Reviewers: zmike, devilhorns
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6390
This commit is contained in:
parent
0e40fad446
commit
a522bf5d76
|
@ -3256,6 +3256,8 @@ _ecore_evas_register_animators(Ecore_Evas *ee)
|
|||
EAPI void
|
||||
_ecore_evas_register(Ecore_Evas *ee)
|
||||
{
|
||||
if (ee->registered) return;
|
||||
|
||||
ee->registered = 1;
|
||||
ecore_evases = (Ecore_Evas *)eina_inlist_prepend
|
||||
(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
|
||||
|
|
Loading…
Reference in New Issue