On Wed, 26 Dec 2018 03:33:42 -0800 Marcel Hollerbach
<m...@marcel-hollerbach.de> said:

actually ... i fixed this without a revert - certain api's of eina promise
were overlooked. i have the fix pending locally alongside some other fixes to
gl linking...

> bu5hm4n pushed a commit to branch master.
> 
> http://git.enlightenment.org/core/efl.git/commit/?id=42e886d8d61d551bb544b777e6d254ce4dd3fcf1
> 
> commit 42e886d8d61d551bb544b777e6d254ce4dd3fcf1
> Author: Marcel Hollerbach <m...@marcel-hollerbach.de>
> Date:   Wed Dec 26 12:15:21 2018 +0100
> 
>     Revert "ecore: make efl_loop_promise_new a function of Efl.Loop_Consumer."
>     
>     This reverts commit 9b5155c9f135f9ef450a817979f5884352b2d4c0.
>     
>     For now lets revert this, this breaks copy and paste, further more it
>     has the potential to break a lot more things, as eio_model tends to use
>     efl_loop_promise new, and then eina_promise_data_set, which is
>     explicitly forbidden.
>     
>     This fixes crashing terminology instances.
> ---
>  src/lib/ecore/Ecore_Eo.h                           | 13 ++++++
>  src/lib/ecore/efl_exe.c                            |  2 +-
>  src/lib/ecore/efl_loop.c                           |  7 ++++
>  src/lib/ecore/efl_loop_consumer.c                  | 47
> ---------------------- src/lib/ecore/efl_loop_consumer.eo                 |
> 17 -------- src/lib/ecore/efl_thread.c                         |  4 +-
>  .../efl_net_control_access_point-connman.c         |  4 +-
>  .../ecore_con/efl_net_control_technology-connman.c |  6 +--
>  src/lib/ecore_con/efl_net_ip_address.c             |  2 +-
>  src/lib/eio/efl_io_manager.c                       | 18 ++++-----
>  src/lib/eio/eio_model.c                            |  4 +-
>  src/lib/eldbus/eldbus_model_connection.c           |  2 +-
>  src/lib/eldbus/eldbus_model_object.c               |  2 +-
>  src/lib/eldbus/eldbus_model_private.h              |  1 -
>  src/lib/eldbus/eldbus_model_proxy.c                |  3 +-
>  src/lib/elementary/efl_selection_manager.c         |  4 +-
>  src/lib/eo/eina_types.eot                          |  2 -
>  17 files changed, 45 insertions(+), 93 deletions(-)
> 
> diff --git a/src/lib/ecore/Ecore_Eo.h b/src/lib/ecore/Ecore_Eo.h
> index a070cd1b60..33e864f267 100644
> --- a/src/lib/ecore/Ecore_Eo.h
> +++ b/src/lib/ecore/Ecore_Eo.h
> @@ -62,6 +62,19 @@ EAPI int efl_loop_exit_code_process(Eina_Value *value);
>   */
>  EAPI Eina_Future_Scheduler *efl_loop_future_scheduler_get(const Eo *obj);
>  
> +/**
> + * @brief Create a promise attached to the current loop
> + *
> + * @param[in] An object which will provide a loop, either by being a loop or
> a loop consumer
> + * @param cancel_cb A callback used to inform that the promise was canceled.
> Use
> + * this callback to @c free @p data. @p cancel_cb must not be @c NULL !
> + * @param data Data to @p cancel_cb.
> + * @return A promise or @c NULL on error.
> + *
> + * @see eina_promise_new()
> + */
> +EAPI Eina_Promise *efl_loop_promise_new(const Eo *obj,
> Eina_Promise_Cancel_Cb cancel_cb, const void *data); +
>  #include "efl_loop_fd.eo.h"
>  #include "efl_loop_handler.eo.h"
>  
> diff --git a/src/lib/ecore/efl_exe.c b/src/lib/ecore/efl_exe.c
> index e870fcaf1f..254dd4c17a 100644
> --- a/src/lib/ecore/efl_exe.c
> +++ b/src/lib/ecore/efl_exe.c
> @@ -485,7 +485,7 @@ _efl_exe_efl_task_run(Eo *obj EINA_UNUSED, Efl_Exe_Data
> *pd) EFL_LOOP_HANDLER_FLAGS_READ));
>          _ecore_signal_pid_unlock();
>          pd->run = EINA_TRUE;
> -        pd->promise = efl_loop_promise_new(obj, obj, _run_cancel_cb, NULL);
> +        pd->promise = efl_loop_promise_new(obj, _run_cancel_cb, obj);
>          return efl_future_then(obj, eina_future_new(pd->promise));
>       }
>     // this code is in the child here, and is temporary setup until we
> diff --git a/src/lib/ecore/efl_loop.c b/src/lib/ecore/efl_loop.c
> index ab6d198316..1ef212f731 100644
> --- a/src/lib/ecore/efl_loop.c
> +++ b/src/lib/ecore/efl_loop.c
> @@ -902,4 +902,11 @@ efl_loop_future_scheduler_get(const Eo *obj)
>  #define EFL_LOOP_EXTRA_OPS \
>    EFL_OBJECT_OP_FUNC(efl_loop_message_process, _efl_loop_message_process)
>  
> +EAPI Eina_Promise *
> +efl_loop_promise_new(const Eo *obj, Eina_Promise_Cancel_Cb cancel_cb, const
> void *data) +{
> +   return eina_promise_new(efl_loop_future_scheduler_get(obj),
> +                           cancel_cb, data);
> +}
> +
>  #include "efl_loop.eo.c"
> diff --git a/src/lib/ecore/efl_loop_consumer.c
> b/src/lib/ecore/efl_loop_consumer.c index f88c3e4473..29e94ed52d 100644
> --- a/src/lib/ecore/efl_loop_consumer.c
> +++ b/src/lib/ecore/efl_loop_consumer.c
> @@ -50,51 +50,4 @@ _efl_loop_consumer_future_rejected(Eo *obj,
> Efl_Loop_Consumer_Data *pd EINA_UNUS return
> eina_future_rejected(efl_loop_future_scheduler_get(obj), error); }
>  
> -typedef struct _Efl_Loop_Consumer_Promise Efl_Loop_Consumer_Promise;
> -struct _Efl_Loop_Consumer_Promise
> -{
> -   EflLoopConsumerPromiseCancel func;
> -   Eina_Free_Cb free;
> -   void *data;
> -   Eo *obj;
> -};
> -
> -static void
> -_cancel_free(void *data)
> -{
> -   Efl_Loop_Consumer_Promise *lcp = data;
> -
> -   if (lcp->free) lcp->free(lcp->data);
> -   efl_unref(lcp->obj);
> -   free(lcp);
> -}
> -
> -static void
> -_cancel_triggered(void *data, const Eina_Promise *p)
> -{
> -   Efl_Loop_Consumer_Promise *lcp = data;
> -
> -   if (lcp->func) lcp->func(lcp->data, lcp->obj, p);
> -}
> -
> -static Eina_Promise *
> -_efl_loop_consumer_promise_new(Eo *obj, Efl_Loop_Consumer_Data *pd,
> -                               void *cancel_data,
> EflLoopConsumerPromiseCancel cancel, Eina_Free_Cb cancel_free_cb) -{
> -   Efl_Loop_Consumer_Promise *lcp;
> -   Eina_Promise *p;
> -
> -   lcp = calloc(1, sizeof (Efl_Loop_Consumer_Promise));
> -   if (!lcp) return NULL;
> -
> -   lcp->func = cancel;
> -   lcp->data = cancel_data;
> -   lcp->free = cancel_free_cb;
> -   lcp->obj = efl_ref(obj);
> -
> -   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
> _cancel_triggered, lcp);
> -   eina_promise_data_free_cb_set(p, _cancel_free);
> -   return p;
> -}
> -
>  #include "efl_loop_consumer.eo.c"
> diff --git a/src/lib/ecore/efl_loop_consumer.eo
> b/src/lib/ecore/efl_loop_consumer.eo index ed9d351faa..4d7484e13c 100644
> --- a/src/lib/ecore/efl_loop_consumer.eo
> +++ b/src/lib/ecore/efl_loop_consumer.eo
> @@ -1,11 +1,3 @@
> -function EflLoopConsumerPromiseCancel {
> -   [[EflLoopConsumerPromiseCancel function callback called when a promise is
> cancelled.]]
> -   params {
> -      @in consumer: Efl.Loop_Consumer; [[The consumer that was used to
> create the promise.]]
> -      @in dead_promise: const(ptr(Eina.Promise)); [[The promise that was
> just cancelled.]]
> -   }
> -};
> -
>  class Efl.Loop_Consumer (Efl.Object)
>  {
>     [[An Efl.Loop_Consumer is a class which requires one of the parents to
> provide @@ -34,15 +26,6 @@ class Efl.Loop_Consumer (Efl.Object)
>           }
>           return: future<Eina.Error>;
>        }
> -      promise_new {
> -         [[Create a new promise with the scheduler coming from the loop
> provided by this object. -
> -      Note: You should not use eina_promise_data_set as this function
> rely on controlling the promise data.]]
> -         params {
> -         cancel: EflLoopConsumerPromiseCancel; [[Callback called when the
> promise is being cancelled.]]
> -      }
> -      return: ptr(Eina.Promise) @owned; [[The new promise.]]
> -      }
>     }
>     implements {
>        Efl.Object.parent { set; }
> diff --git a/src/lib/ecore/efl_thread.c b/src/lib/ecore/efl_thread.c
> index c44e59b73a..f72aa07231 100644
> --- a/src/lib/ecore/efl_thread.c
> +++ b/src/lib/ecore/efl_thread.c
> @@ -412,7 +412,7 @@ _cb_thread_parent_ctrl_out(void *data, const Efl_Event
> *event
> EINA_UNUSED) 
> ////////////////////////////////////////////////////////////////////////// 
>  static void
> -_run_cancel_cb(void *data, Efl_Loop_Consumer *consumer EINA_UNUSED, const
> Eina_Promise *dead_promise EINA_UNUSED) +_run_cancel_cb(void *data, const
> Eina_Promise *dead_promise EINA_UNUSED) {
>     Eo *obj = data;
>     Efl_Thread_Data *pd = efl_data_scope_get(obj, MY_CLASS);
> @@ -777,7 +777,7 @@ _efl_thread_efl_task_run(Eo *obj, Efl_Thread_Data *pd)
>       }
>     pd->thdat = thdat;
>     pd->run = EINA_TRUE;
> -   pd->promise = efl_loop_promise_new(obj, obj, _run_cancel_cb, NULL);
> +   pd->promise = efl_loop_promise_new(obj, _run_cancel_cb, obj);
>     return efl_future_then(obj, eina_future_new(pd->promise));
>  }
>  
> diff --git a/src/lib/ecore_con/efl_net_control_access_point-connman.c
> b/src/lib/ecore_con/efl_net_control_access_point-connman.c index
> 32394ab989..a54cce2a50 100644
> --- a/src/lib/ecore_con/efl_net_control_access_point-connman.c
> +++ b/src/lib/ecore_con/efl_net_control_access_point-connman.c
> @@ -751,7 +751,7 @@ _efl_net_control_access_point_connect_cb(void *data,
> const Eldbus_Message *msg, }
>  
>  static void
> -_efl_net_control_access_point_connect_promise_del(void *data,
> Efl_Loop_Consumer *consumer EINA_UNUSED, const Eina_Promise *dead_ptr)
> +_efl_net_control_access_point_connect_promise_del(void *data, const
> Eina_Promise *dead_ptr) { Eldbus_Pending *p = data;
>     Efl_Net_Control_Access_Point_Data *pd;
> @@ -773,7 +773,7 @@ _efl_net_control_access_point_connect(Eo *o,
> Efl_Net_Control_Access_Point_Data * Eina_Promise *promise;
>     Eina_Future *f = NULL;
>  
> -   promise = efl_loop_promise_new(o, o,
> _efl_net_control_access_point_connect_promise_del, NULL);
> +   promise = efl_loop_promise_new(o,
> _efl_net_control_access_point_connect_promise_del, o);
> EINA_SAFETY_ON_NULL_RETURN_VAL(promise, NULL); 
>     f = eina_future_new(promise);
> diff --git a/src/lib/ecore_con/efl_net_control_technology-connman.c
> b/src/lib/ecore_con/efl_net_control_technology-connman.c index
> a006923e61..92660de83f 100644
> --- a/src/lib/ecore_con/efl_net_control_technology-connman.c
> +++ b/src/lib/ecore_con/efl_net_control_technology-connman.c
> @@ -371,9 +371,9 @@ _efl_net_control_technology_scan_cb(void *data, const
> Eldbus_Message *msg, Eldbu }
>  
>  static void
> -_efl_net_control_technology_scan_promise_del(void *data, Efl_Loop_Consumer
> *consumer, const Eina_Promise *dead_ptr)
> +_efl_net_control_technology_scan_promise_del(void *data, const Eina_Promise
> *dead_ptr) {
> -   Eldbus_Pending *p = consumer;
> +   Eldbus_Pending *p = data;
>     Efl_Net_Control_Technology_Data *pd;
>     Eo *o;
>  
> @@ -399,7 +399,7 @@ _efl_net_control_technology_scan(Eo *o,
> Efl_Net_Control_Technology_Data *pd) Eina_Promise *promise;
>     Eina_Future *f = NULL;
>  
> -   promise = efl_loop_promise_new(o, NULL,
> _efl_net_control_technology_scan_promise_del, NULL);
> +   promise = efl_loop_promise_new(o,
> _efl_net_control_technology_scan_promise_del, NULL);
> EINA_SAFETY_ON_NULL_RETURN_VAL(promise, NULL); 
>     f = eina_future_new(promise);
> diff --git a/src/lib/ecore_con/efl_net_ip_address.c
> b/src/lib/ecore_con/efl_net_ip_address.c index 46fe75bd08..b6d9317dee 100644
> --- a/src/lib/ecore_con/efl_net_ip_address.c
> +++ b/src/lib/ecore_con/efl_net_ip_address.c
> @@ -573,7 +573,7 @@ _efl_net_ip_address_resolve(Eo *cls EINA_UNUSED, void *pd
> EINA_UNUSED, const cha ctx->thread = efl_net_ip_resolve_async_new(host, port,
> &hints, _efl_net_ip_address_resolve_done, ctx);
> EINA_SAFETY_ON_NULL_GOTO(ctx->thread, error_thread); 
> -   ctx->promise =
> eina_promise_new(efl_loop_future_scheduler_get(efl_main_loop_get()),
> _efl_net_ip_address_resolve_del, ctx);
> +   ctx->promise = efl_loop_promise_new(efl_main_loop_get(),
> _efl_net_ip_address_resolve_del, ctx); EINA_SAFETY_ON_NULL_GOTO(ctx->promise,
> error_promise); 
>     free(str);
> diff --git a/src/lib/eio/efl_io_manager.c b/src/lib/eio/efl_io_manager.c
> index 9dcdfeeedf..6ac1746621 100644
> --- a/src/lib/eio/efl_io_manager.c
> +++ b/src/lib/eio/efl_io_manager.c
> @@ -119,7 +119,7 @@ _efl_io_manager_direct_ls(const Eo *obj,
>     Eina_Future *future;
>     Eio_File *h;
>  
> -   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
> _efl_io_manager_future_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _efl_io_manager_future_cancel, NULL);
>     if (!p) return NULL;
>     future = eina_future_new(p);
>  
> @@ -162,7 +162,7 @@ _efl_io_manager_stat_ls(const Eo *obj,
>     Eina_Future *future;
>     Eio_File *h;
>  
> -   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
> _efl_io_manager_future_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _efl_io_manager_future_cancel, NULL);
>     if (!p) return NULL;
>     future = eina_future_new(p);
>  
> @@ -204,7 +204,7 @@ _efl_io_manager_ls(const Eo *obj,
>     Eina_Future *future;
>     Eio_File *h;
>  
> -   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
> _efl_io_manager_future_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _efl_io_manager_future_cancel, NULL);
>     if (!p) return NULL;
>     future = eina_future_new(p);
>  
> @@ -256,7 +256,7 @@ _efl_io_manager_stat(const Eo *obj,
>     Eina_Future *future;
>     Eio_File *h;
>  
> -   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
> _efl_io_manager_future_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _efl_io_manager_future_cancel, NULL);
>     if (!p) return NULL;
>     future = eina_future_new(p);
>  
> @@ -285,7 +285,7 @@ _efl_io_manager_xattr_ls(const Eo *obj,
>     Eina_Future *future;
>     Eio_File *h;
>  
> -   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
> _efl_io_manager_future_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _efl_io_manager_future_cancel, NULL);
>     if (!p) return NULL;
>     future = eina_future_new(p);
>  
> @@ -336,7 +336,7 @@ _efl_io_manager_xattr_set(Eo *obj,
>     Eina_Future *future;
>     Eio_File *h;
>  
> -   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
> _efl_io_manager_future_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _efl_io_manager_future_cancel, NULL);
>     if (!p) return NULL;
>     future = eina_future_new(p);
>  
> @@ -366,7 +366,7 @@ _efl_io_manager_xattr_get(const Eo *obj,
>     Eina_Future *future;
>     Eio_File *h;
>  
> -   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
> _efl_io_manager_future_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _efl_io_manager_future_cancel, NULL);
>     if (!p) return NULL;
>     future = eina_future_new(p);
>  
> @@ -405,7 +405,7 @@ _efl_io_manager_open(const Eo *obj,
>     Eina_Future *future;
>     Eio_File *h;
>  
> -   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
> _efl_io_manager_future_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _efl_io_manager_future_cancel, NULL);
>     if (!p) return NULL;
>     future = eina_future_new(p);
>  
> @@ -431,7 +431,7 @@ _efl_io_manager_close(const Eo *obj,
>     Eina_Future *future;
>     Eio_File *h;
>  
> -   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
> _efl_io_manager_future_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _efl_io_manager_future_cancel, NULL);
>     if (!p) return NULL;
>     future = eina_future_new(p);
>  
> diff --git a/src/lib/eio/eio_model.c b/src/lib/eio/eio_model.c
> index c6e03e663b..309af24a01 100644
> --- a/src/lib/eio/eio_model.c
> +++ b/src/lib/eio/eio_model.c
> @@ -417,7 +417,7 @@ _build_delay(Efl_Loop *loop)
>  {
>     Eina_Promise *p;
>  
> -   p = eina_promise_new(efl_loop_future_scheduler_get(loop),
> _cancel_request, NULL);
> +   p = efl_loop_promise_new(loop, _cancel_request, NULL);
>  
>     if (!delayed_queue)
>       {
> @@ -682,7 +682,7 @@ _eio_model_efl_model_property_set(Eo *obj,
>  
>     if (finalized)
>       {
> -        Eina_Promise *p =
> eina_promise_new(efl_loop_future_scheduler_get(obj),
> _efl_io_manager_future_cancel, NULL);
> +        Eina_Promise *p = efl_loop_promise_new(obj,
> _efl_io_manager_future_cancel, NULL); f = eina_future_new(p);
>  
>          pd->request.move = eio_file_move(pd->path, path,
> diff --git a/src/lib/eldbus/eldbus_model_connection.c
> b/src/lib/eldbus/eldbus_model_connection.c index a8f2d52478..175afcd924 100644
> --- a/src/lib/eldbus/eldbus_model_connection.c
> +++ b/src/lib/eldbus/eldbus_model_connection.c
> @@ -70,7 +70,7 @@ _eldbus_model_connection_efl_model_children_slice_get(Eo
> *obj, return efl_loop_future_resolved(obj, v);
>       }
>  
> -   p = efl_loop_promise_new(obj, NULL, _eldbus_eina_promise_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _eldbus_eina_promise_cancel, NULL);
>  
>     slice = calloc(1, sizeof (Eldbus_Children_Slice_Promise));
>     slice->p = p;
> diff --git a/src/lib/eldbus/eldbus_model_object.c
> b/src/lib/eldbus/eldbus_model_object.c index b975514cbd..3759fc3f8f 100644
> --- a/src/lib/eldbus/eldbus_model_object.c
> +++ b/src/lib/eldbus/eldbus_model_object.c
> @@ -127,7 +127,7 @@ _eldbus_model_object_efl_model_children_slice_get(Eo *obj
> EINA_UNUSED, return efl_loop_future_resolved(obj, v);
>       }
>  
> -   p = efl_loop_promise_new(obj, NULL, _eldbus_eina_promise_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _eldbus_eina_promise_cancel, NULL);
>  
>     slice = calloc(1, sizeof(struct _Eldbus_Children_Slice_Promise));
>     slice->p = p;
> diff --git a/src/lib/eldbus/eldbus_model_private.h
> b/src/lib/eldbus/eldbus_model_private.h index e58a25d30d..3f6685921b 100644
> --- a/src/lib/eldbus/eldbus_model_private.h
> +++ b/src/lib/eldbus/eldbus_model_private.h
> @@ -41,7 +41,6 @@ extern int eldbus_model_log_dom;
>  
>  static inline void
>  _eldbus_eina_promise_cancel(void *data EINA_UNUSED,
> -                            Efl_Loop_Consumer *consumer EINA_UNUSED,
>                              const Eina_Promise *dead_ptr EINA_UNUSED)
>  {
>  }
> diff --git a/src/lib/eldbus/eldbus_model_proxy.c
> b/src/lib/eldbus/eldbus_model_proxy.c index ca5cfc3bf2..4da54ad7f4 100644
> --- a/src/lib/eldbus/eldbus_model_proxy.c
> +++ b/src/lib/eldbus/eldbus_model_proxy.c
> @@ -230,7 +230,6 @@ eldbus_model_proxy_property_check(Eldbus_Model_Proxy_Data
> *pd, 
>  static void
>  _eldbus_model_proxy_cancel_cb(void *data,
> -                              Efl_Loop_Consumer *consumer EINA_UNUSED,
>                                const Eina_Promise *dead_promise EINA_UNUSED)
>  {
>     Eldbus_Model_Proxy_Property_Set_Data *sd = data;
> @@ -294,7 +293,7 @@ _eldbus_model_proxy_efl_model_property_set(Eo *obj
> EINA_UNUSED, if (!data) goto on_error;
>  
>     data->pd = pd;
> -   data->promise = efl_loop_promise_new(obj, data,
> _eldbus_model_proxy_cancel_cb, NULL);
> +   data->promise = efl_loop_promise_new(obj, _eldbus_model_proxy_cancel_cb,
> data); data->property = eina_stringshare_add(property);
>     if (!(data->value = eina_value_dup(value))) goto on_error;
>  
> diff --git a/src/lib/elementary/efl_selection_manager.c
> b/src/lib/elementary/efl_selection_manager.c index d0c4463a18..42d66a9918
> 100644
> --- a/src/lib/elementary/efl_selection_manager.c
> +++ b/src/lib/elementary/efl_selection_manager.c
> @@ -224,7 +224,7 @@
> _sel_manager_seat_selection_init(Efl_Selection_Manager_Data *pd, unsigned int
> se } 
>  static void
> -_sel_manager_promise_cancel(void *data, Efl_Loop_Consumer *consumer, const
> Eina_Promise *dead_future EINA_UNUSED) +_sel_manager_promise_cancel(void
> *data, const Eina_Promise *dead_future EINA_UNUSED) {
>     Sel_Manager_Selection_Lost *sel_lost = data;
>     sel_lost->seat_sel->sel_lost_list = eina_list_remove(
> @@ -247,7 +247,7 @@ _update_sel_lost_list(Efl_Object *obj, Efl_Selection_Type
> type, sel_lost->seat_sel = seat_sel;
>     seat_sel->sel_lost_list = eina_list_append(seat_sel->sel_lost_list,
> sel_lost); 
> -   p = efl_loop_promise_new(obj, NULL, _sel_manager_promise_cancel, NULL);
> +   p = efl_loop_promise_new(obj, _sel_manager_promise_cancel, NULL);
>     eina_promise_data_set(p, sel_lost);
>     if (!p) return NULL;
>     sel_lost->promise = p;
> diff --git a/src/lib/eo/eina_types.eot b/src/lib/eo/eina_types.eot
> index d0b3dcbcb9..d08382c1cd 100644
> --- a/src/lib/eo/eina_types.eot
> +++ b/src/lib/eo/eina_types.eot
> @@ -99,8 +99,6 @@ struct @extern Eina.Stat {
>      ctimensec: ulong; [[The nano version of the timestmap when the file was
> created]] }
>  
> -struct @extern Eina.Promise; [[Eina promise type]]
> -
>  /* FIXME: This definitely shouldn't be here. */
>  type Efl.Event_Cb: __undefined_type; [[Efl event callback type]]
>  
> 
> -- 
> 
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
Carsten Haitzler - ras...@rasterman.com



_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to