X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmisc%2Fobjects.c;h=b439120951a6d6f44d980f2e0f2326506a406eaf;hb=4d7e2552167275bbbc948532e079f52b418eb89e;hp=4468182f32b2a62b0138c5319a4c6e3030854ee8;hpb=28ed0fc96153391a47fa4b480f716f0de1fbacae;p=vlc diff --git a/src/misc/objects.c b/src/misc/objects.c index 4468182f32..b439120951 100644 --- a/src/misc/objects.c +++ b/src/misc/objects.c @@ -53,6 +53,8 @@ #include "vlc_httpd.h" #include "vlc_vlm.h" #include "vlc_vod.h" +#include "vlc_tls.h" +#include "vlc_xml.h" /***************************************************************************** * Local prototypes @@ -125,6 +127,10 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type ) i_size = sizeof(playlist_t); psz_type = "playlist"; break; + case VLC_OBJECT_SD: + i_size = sizeof(services_discovery_t); + psz_type = "services discovery"; + break; case VLC_OBJECT_INPUT: i_size = sizeof(input_thread_t); psz_type = "input"; @@ -185,6 +191,14 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type ) i_size = sizeof( vod_t ); psz_type = "vod server"; break; + case VLC_OBJECT_TLS: + i_size = sizeof( tls_t ); + psz_type = "tls"; + break; + case VLC_OBJECT_XML: + i_size = sizeof( xml_t ); + psz_type = "xml"; + break; case VLC_OBJECT_OPENGL: i_size = sizeof( vout_thread_t ); psz_type = "opengl provider"; @@ -230,7 +244,8 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type ) if( !p_new->p_vars ) { - free( p_new ); + if( i_type != VLC_OBJECT_ROOT ) + free( p_new ); return NULL; } @@ -382,7 +397,9 @@ void __vlc_object_destroy( vlc_object_t *p_this ) vlc_mutex_destroy( &p_this->object_lock ); vlc_cond_destroy( &p_this->object_wait ); - free( p_this ); + /* root is not dynamically allocated by vlc_object_create */ + if( p_this->i_object_type != VLC_OBJECT_ROOT ) + free( p_this ); } /**