forked from enlightenment/efl
fix usage of ecore_con functions to avoid magic failures: SOMEONE WHO KNOWS THIS CODE PLEASE DOUBLE CHECK FAILURE CASE RETURN VALUES
SVN revision: 55512
This commit is contained in:
parent
8babc062be
commit
dd8fe515a3
|
@ -844,7 +844,8 @@ ecore_ipc_client_server_get(Ecore_Ipc_Client *cl)
|
||||||
"ecore_ipc_client_server_get");
|
"ecore_ipc_client_server_get");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return (ecore_con_server_data_get(ecore_con_client_server_get(cl->client)));
|
if (!ecore_con_client_server_get(cl->client)) return NULL;
|
||||||
|
return ecore_con_server_data_get(ecore_con_client_server_get(cl->client));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -871,9 +872,15 @@ ecore_ipc_client_del(Ecore_Ipc_Client *cl)
|
||||||
cl->delete_me = 1;
|
cl->delete_me = 1;
|
||||||
if (cl->event_count == 0)
|
if (cl->event_count == 0)
|
||||||
{
|
{
|
||||||
svr = ecore_con_server_data_get(ecore_con_client_server_get(cl->client));
|
Ecore_Con_Server *s;
|
||||||
|
|
||||||
ecore_con_client_del(cl->client);
|
ecore_con_client_del(cl->client);
|
||||||
svr->clients = eina_list_remove(svr->clients, cl);
|
s = ecore_con_client_server_get(cl->client);
|
||||||
|
if (s)
|
||||||
|
{
|
||||||
|
svr = ecore_con_server_data_get(s);
|
||||||
|
svr->clients = eina_list_remove(svr->clients, cl);
|
||||||
|
}
|
||||||
if (cl->buf) free(cl->buf);
|
if (cl->buf) free(cl->buf);
|
||||||
ECORE_MAGIC_SET(cl, ECORE_MAGIC_NONE);
|
ECORE_MAGIC_SET(cl, ECORE_MAGIC_NONE);
|
||||||
free(cl);
|
free(cl);
|
||||||
|
@ -1011,17 +1018,21 @@ static Eina_Bool
|
||||||
_ecore_ipc_event_client_add(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
_ecore_ipc_event_client_add(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
||||||
{
|
{
|
||||||
Ecore_Con_Event_Client_Add *e;
|
Ecore_Con_Event_Client_Add *e;
|
||||||
|
Ecore_Con_Server *s;
|
||||||
|
Ecore_Ipc_Server *svr;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
if (!eina_list_data_find(servers, ecore_con_server_data_get(ecore_con_client_server_get(e->client)))) return ECORE_CALLBACK_RENEW;
|
s = ecore_con_client_server_get(e->client);
|
||||||
|
if (!s) return ECORE_CALLBACK_RENEW;
|
||||||
|
svr = ecore_con_server_data_get(s);
|
||||||
|
if (!svr) return ECORE_CALLBACK_RENEW;
|
||||||
|
if (!eina_list_data_find(servers, svr)) return ECORE_CALLBACK_RENEW;
|
||||||
/* handling code here */
|
/* handling code here */
|
||||||
{
|
{
|
||||||
Ecore_Ipc_Client *cl;
|
Ecore_Ipc_Client *cl;
|
||||||
Ecore_Ipc_Server *svr;
|
|
||||||
|
|
||||||
cl = calloc(1, sizeof(Ecore_Ipc_Client));
|
cl = calloc(1, sizeof(Ecore_Ipc_Client));
|
||||||
if (!cl) return ECORE_CALLBACK_CANCEL;
|
if (!cl) return ECORE_CALLBACK_CANCEL;
|
||||||
svr = ecore_con_server_data_get(ecore_con_client_server_get(e->client));
|
|
||||||
ECORE_MAGIC_SET(cl, ECORE_MAGIC_IPC_CLIENT);
|
ECORE_MAGIC_SET(cl, ECORE_MAGIC_IPC_CLIENT);
|
||||||
cl->client = e->client;
|
cl->client = e->client;
|
||||||
cl->max_buf_size = 32 * 1024;
|
cl->max_buf_size = 32 * 1024;
|
||||||
|
@ -1049,9 +1060,15 @@ static Eina_Bool
|
||||||
_ecore_ipc_event_client_del(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
_ecore_ipc_event_client_del(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
||||||
{
|
{
|
||||||
Ecore_Con_Event_Client_Del *e;
|
Ecore_Con_Event_Client_Del *e;
|
||||||
|
Ecore_Con_Server *s;
|
||||||
|
Ecore_Ipc_Server *svr;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
if (!eina_list_data_find(servers, ecore_con_server_data_get(ecore_con_client_server_get(e->client)))) return ECORE_CALLBACK_RENEW;
|
s = ecore_con_client_server_get(e->client);
|
||||||
|
if (!s) return ECORE_CALLBACK_RENEW;
|
||||||
|
svr = ecore_con_server_data_get(s);
|
||||||
|
if (!svr) return ECORE_CALLBACK_RENEW;
|
||||||
|
if (!eina_list_data_find(servers, svr)) return ECORE_CALLBACK_RENEW;
|
||||||
/* handling code here */
|
/* handling code here */
|
||||||
{
|
{
|
||||||
Ecore_Ipc_Client *cl;
|
Ecore_Ipc_Client *cl;
|
||||||
|
@ -1059,9 +1076,7 @@ _ecore_ipc_event_client_del(void *data __UNUSED__, int ev_type __UNUSED__, void
|
||||||
cl = ecore_con_client_data_get(e->client);
|
cl = ecore_con_client_data_get(e->client);
|
||||||
{
|
{
|
||||||
Ecore_Ipc_Event_Client_Del *e2;
|
Ecore_Ipc_Event_Client_Del *e2;
|
||||||
Ecore_Ipc_Server *svr;
|
|
||||||
|
|
||||||
svr = ecore_con_server_data_get(ecore_con_client_server_get(e->client));
|
|
||||||
svr->client_list = eina_list_remove(svr->client_list, cl);
|
svr->client_list = eina_list_remove(svr->client_list, cl);
|
||||||
if (!cl->delete_me)
|
if (!cl->delete_me)
|
||||||
{
|
{
|
||||||
|
@ -1083,26 +1098,23 @@ static Eina_Bool
|
||||||
_ecore_ipc_event_server_add(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
_ecore_ipc_event_server_add(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
||||||
{
|
{
|
||||||
Ecore_Con_Event_Server_Add *e;
|
Ecore_Con_Event_Server_Add *e;
|
||||||
|
Ecore_Ipc_Server *svr;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
if (!eina_list_data_find(servers, ecore_con_server_data_get(e->server))) return ECORE_CALLBACK_RENEW;
|
svr = ecore_con_server_data_get(e->server);
|
||||||
|
if (!eina_list_data_find(servers, svr)) return ECORE_CALLBACK_RENEW;
|
||||||
/* handling code here */
|
/* handling code here */
|
||||||
|
if (!svr->delete_me)
|
||||||
{
|
{
|
||||||
Ecore_Ipc_Server *svr;
|
Ecore_Ipc_Event_Server_Add *e2;
|
||||||
|
|
||||||
svr = ecore_con_server_data_get(e->server);
|
e2 = calloc(1, sizeof(Ecore_Ipc_Event_Server_Add));
|
||||||
if (!svr->delete_me)
|
if (e2)
|
||||||
{
|
{
|
||||||
Ecore_Ipc_Event_Server_Add *e2;
|
svr->event_count++;
|
||||||
|
e2->server = svr;
|
||||||
e2 = calloc(1, sizeof(Ecore_Ipc_Event_Server_Add));
|
ecore_event_add(ECORE_IPC_EVENT_SERVER_ADD, e2,
|
||||||
if (e2)
|
_ecore_ipc_event_server_add_free, NULL);
|
||||||
{
|
|
||||||
svr->event_count++;
|
|
||||||
e2->server = svr;
|
|
||||||
ecore_event_add(ECORE_IPC_EVENT_SERVER_ADD, e2,
|
|
||||||
_ecore_ipc_event_server_add_free, NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ECORE_CALLBACK_CANCEL;
|
return ECORE_CALLBACK_CANCEL;
|
||||||
|
@ -1112,26 +1124,23 @@ static Eina_Bool
|
||||||
_ecore_ipc_event_server_del(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
_ecore_ipc_event_server_del(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
||||||
{
|
{
|
||||||
Ecore_Con_Event_Server_Del *e;
|
Ecore_Con_Event_Server_Del *e;
|
||||||
|
Ecore_Ipc_Server *svr;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
if (!eina_list_data_find(servers, ecore_con_server_data_get(e->server))) return ECORE_CALLBACK_RENEW;
|
svr = ecore_con_server_data_get(e->server);
|
||||||
|
if (!eina_list_data_find(servers, svr)) return ECORE_CALLBACK_RENEW;
|
||||||
/* handling code here */
|
/* handling code here */
|
||||||
|
if (!svr->delete_me)
|
||||||
{
|
{
|
||||||
Ecore_Ipc_Server *svr;
|
Ecore_Ipc_Event_Server_Del *e2;
|
||||||
|
|
||||||
svr = ecore_con_server_data_get(e->server);
|
e2 = calloc(1, sizeof(Ecore_Ipc_Event_Server_Del));
|
||||||
if (!svr->delete_me)
|
if (e2)
|
||||||
{
|
{
|
||||||
Ecore_Ipc_Event_Server_Del *e2;
|
svr->event_count++;
|
||||||
|
e2->server = svr;
|
||||||
e2 = calloc(1, sizeof(Ecore_Ipc_Event_Server_Del));
|
ecore_event_add(ECORE_IPC_EVENT_SERVER_DEL, e2,
|
||||||
if (e2)
|
_ecore_ipc_event_server_del_free, NULL);
|
||||||
{
|
|
||||||
svr->event_count++;
|
|
||||||
e2->server = svr;
|
|
||||||
ecore_event_add(ECORE_IPC_EVENT_SERVER_DEL, e2,
|
|
||||||
_ecore_ipc_event_server_del_free, NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ECORE_CALLBACK_CANCEL;
|
return ECORE_CALLBACK_CANCEL;
|
||||||
|
@ -1182,17 +1191,19 @@ static Eina_Bool
|
||||||
_ecore_ipc_event_client_data(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
_ecore_ipc_event_client_data(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
||||||
{
|
{
|
||||||
Ecore_Con_Event_Client_Data *e;
|
Ecore_Con_Event_Client_Data *e;
|
||||||
|
Ecore_Con_Server *svr;
|
||||||
|
Ecore_Ipc_Client *cl;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
if (!eina_list_data_find(servers, ecore_con_server_data_get(ecore_con_client_server_get(e->client)))) return ECORE_CALLBACK_RENEW;
|
svr = ecore_con_client_server_get(e->client);
|
||||||
|
cl = ecore_con_server_data_get(svr);
|
||||||
|
if (!eina_list_data_find(servers, cl)) return ECORE_CALLBACK_RENEW;
|
||||||
/* handling code here */
|
/* handling code here */
|
||||||
{
|
{
|
||||||
Ecore_Ipc_Client *cl;
|
|
||||||
Ecore_Ipc_Msg_Head msg;
|
Ecore_Ipc_Msg_Head msg;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
unsigned char *buf;
|
unsigned char *buf;
|
||||||
|
|
||||||
cl = ecore_con_client_data_get(e->client);
|
|
||||||
|
|
||||||
if (!cl->buf)
|
if (!cl->buf)
|
||||||
{
|
{
|
||||||
|
@ -1254,10 +1265,13 @@ _ecore_ipc_event_client_data(void *data __UNUSED__, int ev_type __UNUSED__, void
|
||||||
{
|
{
|
||||||
Ecore_Ipc_Event_Client_Data *e2;
|
Ecore_Ipc_Event_Client_Data *e2;
|
||||||
Ecore_Ipc_Server *svr;
|
Ecore_Ipc_Server *svr;
|
||||||
|
Ecore_Con_Server *sv;
|
||||||
int max, max2;
|
int max, max2;
|
||||||
|
|
||||||
buf = NULL;
|
buf = NULL;
|
||||||
svr = ecore_con_server_data_get(ecore_con_client_server_get(cl->client));
|
sv = ecore_con_client_server_get(cl->client);
|
||||||
|
if (!sv) return ECORE_CALLBACK_CANCEL;
|
||||||
|
svr = ecore_con_server_data_get(sv);
|
||||||
max = svr->max_buf_size;
|
max = svr->max_buf_size;
|
||||||
max2 = cl->max_buf_size;
|
max2 = cl->max_buf_size;
|
||||||
if ((max >= 0) && (max2 >= 0))
|
if ((max >= 0) && (max2 >= 0))
|
||||||
|
@ -1374,18 +1388,17 @@ static Eina_Bool
|
||||||
_ecore_ipc_event_server_data(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
_ecore_ipc_event_server_data(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
||||||
{
|
{
|
||||||
Ecore_Con_Event_Server_Data *e;
|
Ecore_Con_Event_Server_Data *e;
|
||||||
|
Ecore_Ipc_Server *svr;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
if (!eina_list_data_find(servers, ecore_con_server_data_get(e->server))) return ECORE_CALLBACK_RENEW;
|
svr = ecore_con_server_data_get(e->server);
|
||||||
|
if (!eina_list_data_find(servers, svr)) return ECORE_CALLBACK_RENEW;
|
||||||
/* handling code here */
|
/* handling code here */
|
||||||
{
|
{
|
||||||
Ecore_Ipc_Server *svr;
|
|
||||||
Ecore_Ipc_Msg_Head msg;
|
Ecore_Ipc_Msg_Head msg;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
unsigned char *buf;
|
unsigned char *buf;
|
||||||
|
|
||||||
svr = ecore_con_server_data_get(e->server);
|
|
||||||
|
|
||||||
if (!svr->buf)
|
if (!svr->buf)
|
||||||
{
|
{
|
||||||
svr->buf_size = e->size;
|
svr->buf_size = e->size;
|
||||||
|
|
Loading…
Reference in New Issue