X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmisc%2Fobjects.c;h=b439120951a6d6f44d980f2e0f2326506a406eaf;hb=4d7e2552167275bbbc948532e079f52b418eb89e;hp=a8bc6cde2e9735cd721ff64d7ec48d43879bc877;hpb=b98e9a5af31ae4ce809d26537638beef42174435;p=vlc diff --git a/src/misc/objects.c b/src/misc/objects.c index a8bc6cde2e..b439120951 100644 --- a/src/misc/objects.c +++ b/src/misc/objects.c @@ -54,6 +54,7 @@ #include "vlc_vlm.h" #include "vlc_vod.h" #include "vlc_tls.h" +#include "vlc_xml.h" /***************************************************************************** * Local prototypes @@ -126,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"; @@ -190,6 +195,10 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type ) 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"; @@ -235,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; } @@ -387,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 ); } /**