ecore: rely on object being destroyed on parent invalidate.

This commit is contained in:
Cedric Bail 2018-03-21 18:20:53 -07:00 committed by Cedric BAIL
parent a9fbaf16d3
commit def3bb6eec
2 changed files with 6 additions and 9 deletions

View File

@ -148,26 +148,23 @@ _efl_app_efl_object_constructor(Eo *obj, Efl_App_Data *pd)
pd->fd.in_handler =
efl_add(EFL_LOOP_HANDLER_CLASS, obj,
efl_loop_handler_fd_set(efl_added, pd->fd.in),
efl_event_callback_add
(efl_added, EFL_LOOP_HANDLER_EVENT_WRITE, _cb_in, obj));
efl_event_callback_add(efl_added, EFL_LOOP_HANDLER_EVENT_WRITE, _cb_in, obj));
pd->fd.out_handler =
efl_add(EFL_LOOP_HANDLER_CLASS, obj,
efl_loop_handler_fd_set(efl_added, pd->fd.out),
efl_event_callback_add
(efl_added, EFL_LOOP_HANDLER_EVENT_READ, _cb_out, obj));
efl_event_callback_add(efl_added, EFL_LOOP_HANDLER_EVENT_READ, _cb_out, obj));
return obj;
}
EOLIAN static void
_efl_app_efl_object_destructor(Eo *obj, Efl_App_Data *pd)
_efl_app_efl_object_invalidate(Eo *obj, Efl_App_Data *pd)
{
efl_del(pd->fd.in_handler);
efl_del(pd->fd.out_handler);
pd->fd.in_handler = NULL;
pd->fd.out_handler = NULL;
pd->fd.in = -1;
pd->fd.out = -1;
efl_destructor(efl_super(obj, MY_CLASS));
efl_invalidate(efl_super(obj, MY_CLASS));
}
EOLIAN static Eina_Error

View File

@ -44,7 +44,7 @@ class Efl.App (Efl.Loop)
}
implements {
Efl.Object.constructor;
Efl.Object.destructor;
Efl.Object.invalidate;
Efl.Io.Closer.close;
Efl.Io.Closer.closed { get; }
Efl.Io.Reader.read;