attempt #1 to fix obscure disconnect crash

SVN revision: 65416
This commit is contained in:
Mike Blumenkrantz 2011-11-20 00:28:48 +00:00
parent 9d5bb5cfa8
commit b2a76dbe65
1 changed files with 5 additions and 1 deletions

View File

@ -1150,6 +1150,8 @@ _ecore_con_server_free(Ecore_Con_Server *svr)
Ecore_Con_Client *cl; Ecore_Con_Client *cl;
double t_start, t; double t_start, t;
if (svr->event_count) return;
while (svr->infos) while (svr->infos)
{ {
ecore_con_info_data_clear(svr->infos->data); ecore_con_info_data_clear(svr->infos->data);
@ -1163,7 +1165,6 @@ _ecore_con_server_free(Ecore_Con_Server *svr)
return; return;
} }
if (svr->event_count) return;
ECORE_MAGIC_SET(svr, ECORE_MAGIC_NONE); ECORE_MAGIC_SET(svr, ECORE_MAGIC_NONE);
t_start = ecore_time_get(); t_start = ecore_time_get();
while (svr->buf && (!svr->dead)) while (svr->buf && (!svr->dead))
@ -1183,6 +1184,7 @@ _ecore_con_server_free(Ecore_Con_Server *svr)
#ifdef _WIN32 #ifdef _WIN32
ecore_con_local_win32_server_del(svr); ecore_con_local_win32_server_del(svr);
#endif #endif
if (svr->event_count) return;
if (svr->buf) if (svr->buf)
eina_binbuf_free(svr->buf); eina_binbuf_free(svr->buf);
@ -1257,6 +1259,8 @@ _ecore_con_client_free(Ecore_Con_Client *cl)
ecore_con_local_win32_client_del(cl); ecore_con_local_win32_client_del(cl);
#endif #endif
if (cl->event_count) return;
free(cl->buf); free(cl->buf);
if (cl->host_server->type & ECORE_CON_SSL) if (cl->host_server->type & ECORE_CON_SSL)