From 4d1620f3f0ac8590f4e3c297e0e31b98313eb8ec Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Fri, 15 Mar 2019 16:55:07 -0700 Subject: [PATCH] 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 Differential Revision: https://phab.enlightenment.org/D8374 --- src/lib/eio/efl_io_model.c | 22 +--------------------- src/lib/eio/efl_io_model_private.h | 1 - 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/src/lib/eio/efl_io_model.c b/src/lib/eio/efl_io_model.c index e2b3697e08..44c215e260 100644 --- a/src/lib/eio/efl_io_model.c +++ b/src/lib/eio/efl_io_model.c @@ -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); } diff --git a/src/lib/eio/efl_io_model_private.h b/src/lib/eio/efl_io_model_private.h index 8102406653..2574ade284 100644 --- a/src/lib/eio/efl_io_model_private.h +++ b/src/lib/eio/efl_io_model_private.h @@ -35,7 +35,6 @@ struct _Efl_Io_Model_Info struct _Efl_Io_Model_Data { - Efl_Loop *loop; Efl_Io_Model *self; Eina_Stringshare *path;