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)); .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 static Eina_Value
_eio_build_mime_now(Eo *model, void *data, const Eina_Value v) _eio_build_mime_now(Eo *model, void *data, const Eina_Value v)
{ {
Efl_Io_Model_Data *pd = data; 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 // Make sure that we are not over consuming time in the main loop
if (!delayed_one && if (!delayed_one &&
(delayed_queue || ecore_time_get() - ecore_loop_time_get() > 0.004)) (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); pd->mime_type = efreet_mime_type_get(pd->path);
_eio_build_mime_clean(pd);
efl_model_properties_changed(model, "mime_type"); efl_model_properties_changed(model, "mime_type");
delayed_one = EINA_TRUE; delayed_one = EINA_TRUE;
return v;
on_error:
_eio_build_mime_clean(pd);
return v; 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->mime_type) return ;
if (pd->request.mime) 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(efl_loop_get(model)),
pd->request.mime = efl_future_then(model, efl_loop_job(pd->loop),
.success = _eio_build_mime_now, .success = _eio_build_mime_now,
.data = pd); .data = pd);
} }

View File

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