efl net - connman - fix correct param for promise cancel

the consumer is the obj and the obj is not the pending - it is the
promise data, so warning pointed out an actual bug waiting to happen.
This commit is contained in:
Carsten Haitzler 2019-01-11 10:31:16 +00:00
parent b4f8315e1a
commit 1e6d77af90
1 changed files with 4 additions and 6 deletions

View File

@ -371,22 +371,20 @@ _efl_net_control_technology_scan_cb(void *data, const Eldbus_Message *msg, Eldbu
}
static void
_efl_net_control_technology_scan_promise_del(void *data EINA_UNUSED, Efl_Loop_Consumer *consumer, const Eina_Promise *dead_ptr)
_efl_net_control_technology_scan_promise_del(void *data EINA_UNUSED, Efl_Loop_Consumer *consumer EINA_UNUSED, const Eina_Promise *dead_ptr)
{
Eldbus_Pending *p = consumer;
Eldbus_Pending *p;
Efl_Net_Control_Technology_Data *pd;
Eo *o;
if (!p) return;
p = eina_promise_data_get(dead_ptr);
if (!p) return; /* already gone, nothing to do */
o = eldbus_pending_data_get(p, ".object");
pd = efl_data_scope_get(o, MY_CLASS);
EINA_SAFETY_ON_NULL_RETURN(pd);
p = eina_promise_data_get(dead_ptr);
if (!p) return; /* already gone, nothing to do */
pd->pending = eina_list_remove(pd->pending, p);
DBG("cancel pending scan %p", p);
eldbus_pending_cancel(p);