summaryrefslogtreecommitdiff
path: root/src/lib/ecore_ipc/ecore_ipc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/ecore_ipc/ecore_ipc.c')
-rw-r--r--src/lib/ecore_ipc/ecore_ipc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/ecore_ipc/ecore_ipc.c b/src/lib/ecore_ipc/ecore_ipc.c
index 56de0ab43b..219c9503b6 100644
--- a/src/lib/ecore_ipc/ecore_ipc.c
+++ b/src/lib/ecore_ipc/ecore_ipc.c
@@ -461,7 +461,10 @@ ecore_ipc_server_del(Ecore_Ipc_Server *svr)
461 Ecore_Ipc_Client *cl; 461 Ecore_Ipc_Client *cl;
462 462
463 EINA_LIST_FREE(svr->clients, cl) 463 EINA_LIST_FREE(svr->clients, cl)
464 ecore_ipc_client_del(cl); 464 {
465 cl->svr = NULL;
466 ecore_ipc_client_del(cl);
467 }
465 if (svr->server) ecore_con_server_del(svr->server); 468 if (svr->server) ecore_con_server_del(svr->server);
466 servers = eina_list_remove(servers, svr); 469 servers = eina_list_remove(servers, svr);
467 470
@@ -875,7 +878,8 @@ ecore_ipc_client_del(Ecore_Ipc_Client *cl)
875 { 878 {
876 svr = cl->svr; 879 svr = cl->svr;
877 if (cl->client) ecore_con_client_del(cl->client); 880 if (cl->client) ecore_con_client_del(cl->client);
878 svr->clients = eina_list_remove(svr->clients, cl); 881 if (ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_IPC_SERVER))
882 svr->clients = eina_list_remove(svr->clients, cl);
879 if (cl->buf) free(cl->buf); 883 if (cl->buf) free(cl->buf);
880 ECORE_MAGIC_SET(cl, ECORE_MAGIC_NONE); 884 ECORE_MAGIC_SET(cl, ECORE_MAGIC_NONE);
881 free(cl); 885 free(cl);