forked from enlightenment/efl
fix ecore-con tracking of event count lists for clients!!! thanks
valgrind! SVN revision: 65647
This commit is contained in:
parent
03996e4dac
commit
d3e45fc7a7
|
@ -2365,15 +2365,15 @@ _ecore_con_event_client_add_free(Ecore_Con_Server *svr,
|
|||
e = ev;
|
||||
if (e->client)
|
||||
{
|
||||
e->client->host_server->event_count = eina_list_remove(e->client->host_server->event_count, e);
|
||||
if ((!e->client->event_count) && (e->client->delete_me))
|
||||
ecore_con_client_del(e->client);
|
||||
e->client->event_count = eina_list_remove(e->client->event_count, e);
|
||||
if (e->client->host_server)
|
||||
{
|
||||
e->client->host_server->event_count = eina_list_remove(e->client->host_server->event_count, ev);
|
||||
if ((!svr->event_count) && (svr->delete_me))
|
||||
_ecore_con_server_free(svr);
|
||||
}
|
||||
if ((!e->client->event_count) && (e->client->delete_me))
|
||||
ecore_con_client_del(e->client);
|
||||
}
|
||||
|
||||
ecore_con_event_client_add_free(e);
|
||||
|
@ -2391,15 +2391,15 @@ _ecore_con_event_client_del_free(Ecore_Con_Server *svr,
|
|||
e = ev;
|
||||
if (e->client)
|
||||
{
|
||||
e->client->host_server->event_count = eina_list_remove(e->client->host_server->event_count, e);
|
||||
if ((!e->client->event_count) && (e->client->delete_me))
|
||||
ecore_con_client_del(e->client);
|
||||
e->client->event_count = eina_list_remove(e->client->event_count, e);
|
||||
if (e->client->host_server)
|
||||
{
|
||||
e->client->host_server->event_count = eina_list_remove(e->client->host_server->event_count, ev);
|
||||
if ((!svr->event_count) && (svr->delete_me))
|
||||
_ecore_con_server_free(svr);
|
||||
}
|
||||
if ((!e->client->event_count) && (e->client->delete_me))
|
||||
ecore_con_client_del(e->client);
|
||||
}
|
||||
ecore_con_event_client_del_free(e);
|
||||
_ecore_con_event_count--;
|
||||
|
@ -2413,18 +2413,18 @@ _ecore_con_event_client_write_free(Ecore_Con_Server *svr,
|
|||
{
|
||||
if (e->client)
|
||||
{
|
||||
e->client->host_server->event_count = eina_list_remove(e->client->host_server->event_count, e);
|
||||
if (((!e->client->event_count) && (e->client->delete_me)) ||
|
||||
((e->client->host_server &&
|
||||
((e->client->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_UDP ||
|
||||
(e->client->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_MCAST))))
|
||||
ecore_con_client_del(e->client);
|
||||
e->client->event_count = eina_list_remove(e->client->event_count, e);
|
||||
if (e->client->host_server)
|
||||
{
|
||||
e->client->host_server->event_count = eina_list_remove(e->client->host_server->event_count, e);
|
||||
if ((!svr->event_count) && (svr->delete_me))
|
||||
_ecore_con_server_free(svr);
|
||||
}
|
||||
if (((!e->client->event_count) && (e->client->delete_me)) ||
|
||||
((e->client->host_server &&
|
||||
((e->client->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_UDP ||
|
||||
(e->client->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_MCAST))))
|
||||
ecore_con_client_del(e->client);
|
||||
}
|
||||
ecore_con_event_client_write_free(e);
|
||||
_ecore_con_event_count--;
|
||||
|
@ -2441,15 +2441,18 @@ _ecore_con_event_client_data_free(Ecore_Con_Server *svr,
|
|||
e = ev;
|
||||
if (e->client)
|
||||
{
|
||||
e->client->host_server->event_count = eina_list_remove(e->client->host_server->event_count, e);
|
||||
e->client->event_count = eina_list_remove(e->client->event_count, e);
|
||||
if (e->client->host_server)
|
||||
{
|
||||
e->client->host_server->event_count = eina_list_remove(e->client->host_server->event_count, ev);
|
||||
}
|
||||
if ((!svr->event_count) && (svr->delete_me))
|
||||
_ecore_con_server_free(svr);
|
||||
if (((!e->client->event_count) && (e->client->delete_me)) ||
|
||||
((e->client->host_server &&
|
||||
((e->client->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_UDP ||
|
||||
(e->client->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_MCAST))))
|
||||
ecore_con_client_del(e->client);
|
||||
e->client->host_server->event_count = eina_list_remove(e->client->host_server->event_count, ev);
|
||||
if ((!svr->event_count) && (svr->delete_me))
|
||||
_ecore_con_server_free(svr);
|
||||
}
|
||||
free(e->data);
|
||||
ecore_con_event_client_data_free(e);
|
||||
|
|
Loading…
Reference in New Issue