From 2280a7d887aafe4e6887c752a3a79a6137585ea9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sun, 22 May 2005 07:46:02 +0000 Subject: [PATCH] Fix httpd reference count and deletion --- src/misc/httpd.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/misc/httpd.c b/src/misc/httpd.c index 632e56108e..f050cfe921 100644 --- a/src/misc/httpd.c +++ b/src/misc/httpd.c @@ -1173,6 +1173,12 @@ socket_error: return host; error: + if( httpd->i_host <= 0 ) + { + vlc_object_release( httpd ); + vlc_object_detach( httpd ); + vlc_object_destroy( httpd ); + } vlc_mutex_unlock( lockval.p_address ); if( fd != -1 ) @@ -1184,8 +1190,6 @@ error: vlc_object_destroy( host ); } - /* TODO destroy no more used httpd TODO */ - vlc_object_release( httpd ); return NULL; } @@ -1201,8 +1205,6 @@ void httpd_HostDelete( httpd_host_t *host ) var_Get( httpd->p_libvlc, "httpd_mutex", &lockval ); vlc_mutex_lock( lockval.p_address ); - vlc_object_release( httpd ); - host->i_ref--; if( host->i_ref > 0 ) { @@ -1244,6 +1246,7 @@ void httpd_HostDelete( httpd_host_t *host ) if( httpd->i_host <= 0 ) { msg_Info( httpd, "httpd doesn't reference any host, deleting" ); + vlc_object_release( httpd ); vlc_object_detach( httpd ); vlc_object_destroy( httpd ); } -- 2.39.2