eio: remove unecessary use of weak reference.

There is no point in keeping a pointer to the main loop now that we
are using efl_future_then. This resolve potential bug with leftover
dangling weak reference as efl_future_then do require a free case
otherwise.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8374
This commit is contained in:
Cedric BAIL 2019-03-15 16:55:07 -07:00
parent 3bbaf71b68
commit 4d1620f3f0
2 changed files with 1 additions and 22 deletions

View File

@ -434,22 +434,11 @@ _build_delay(Efl_Io_Model *model)
.data = eina_list_last(delayed_queue));
}
static void
_eio_build_mime_clean(Efl_Io_Model_Data *pd)
{
efl_wref_del(pd->loop, &pd->loop);
pd->loop = NULL;
pd->request.mime = NULL;
}
static Eina_Value
_eio_build_mime_now(Eo *model, void *data, const Eina_Value v)
{
Efl_Io_Model_Data *pd = data;
if (v.type == EINA_VALUE_TYPE_ERROR) goto on_error;
if (!pd->loop) goto on_error;
// Make sure that we are not over consuming time in the main loop
if (!delayed_one &&
(delayed_queue || ecore_time_get() - ecore_loop_time_get() > 0.004))
@ -462,16 +451,9 @@ _eio_build_mime_now(Eo *model, void *data, const Eina_Value v)
pd->mime_type = efreet_mime_type_get(pd->path);
_eio_build_mime_clean(pd);
efl_model_properties_changed(model, "mime_type");
delayed_one = EINA_TRUE;
return v;
on_error:
_eio_build_mime_clean(pd);
return v;
}
@ -481,9 +463,7 @@ _eio_build_mime(const Efl_Object *model, Efl_Io_Model_Data *pd)
if (pd->mime_type) return ;
if (pd->request.mime) return ;
efl_wref_add(efl_loop_get(model), &pd->loop);
pd->request.mime = efl_future_then(model, efl_loop_job(pd->loop),
pd->request.mime = efl_future_then(model, efl_loop_job(efl_loop_get(model)),
.success = _eio_build_mime_now,
.data = pd);
}

View File

@ -35,7 +35,6 @@ struct _Efl_Io_Model_Info
struct _Efl_Io_Model_Data
{
Efl_Loop *loop;
Efl_Io_Model *self;
Eina_Stringshare *path;