diff --git a/src/appserver.c b/src/appserver.c index f6e2218..64a3ca5 100644 --- a/src/appserver.c +++ b/src/appserver.c @@ -307,8 +307,10 @@ static int _new_server(AppServer * appserver, int options) /* appserver_delete */ void appserver_delete(AppServer * appserver) { + appinterface_delete(appserver->interface); if(appserver->event_free) event_delete(appserver->event); + array_delete(appserver->clients); free(appserver); } diff --git a/src/event.c b/src/event.c index 09b592d..1a71ffa 100644 --- a/src/event.c +++ b/src/event.c @@ -78,8 +78,27 @@ Event * event_new(void) /* event_delete */ void event_delete(Event * event) { + unsigned int i; + EventTimeout * et; + EventIO * eio; + + for(i = 0; i < array_count(event->timeouts); i++) + { + array_get_copy(event->writes, i, &et); + free(et); + } array_delete(event->timeouts); + for(i = 0; i < array_count(event->reads); i++) + { + array_get_copy(event->reads, i, &eio); + free(eio); + } array_delete(event->reads); + for(i = 0; i < array_count(event->writes); i++) + { + array_get_copy(event->writes, i, &eio); + free(eio); + } array_delete(event->writes); free(event); }