eo: Fix crash during eo_shutdown
I was getting a crash in eo_shutdown, inside _efl_event_pointer_class_destructor as I was calling eo_del from there. But the parent class was already destroyed. Assuming class IDs can only go up, and child classes are only instanciated after all their parents, it is safer to call the class destructors in reverse order. Obviously, still pretty sure eo_del() in a class_destructor is not a good idea...
This commit is contained in:
parent
f8ca9b5cc8
commit
85a9bd5430
|
@ -1727,7 +1727,7 @@ EAPI Eina_Bool
|
|||
eo_shutdown(void)
|
||||
{
|
||||
size_t i;
|
||||
_Eo_Class **cls_itr = _eo_classes;
|
||||
_Eo_Class **cls_itr = _eo_classes + _eo_classes_last_id - 1;
|
||||
|
||||
if (--_eo_init_count > 0)
|
||||
return EINA_TRUE;
|
||||
|
@ -1738,7 +1738,7 @@ eo_shutdown(void)
|
|||
|
||||
_eo_add_fallback_shutdown();
|
||||
|
||||
for (i = 0 ; i < _eo_classes_last_id ; i++, cls_itr++)
|
||||
for (i = 0 ; i < _eo_classes_last_id ; i++, cls_itr--)
|
||||
{
|
||||
if (*cls_itr)
|
||||
eo_class_free(*cls_itr);
|
||||
|
|
Loading…
Reference in New Issue