X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmisc%2Fobjects.c;h=b439120951a6d6f44d980f2e0f2326506a406eaf;hb=4d7e2552167275bbbc948532e079f52b418eb89e;hp=f127a7f51877d954298264e3974685826228c3cb;hpb=d049b8aa9c808b13db2582fc535d3f53d11eeac3;p=vlc diff --git a/src/misc/objects.c b/src/misc/objects.c index f127a7f518..b439120951 100644 --- a/src/misc/objects.c +++ b/src/misc/objects.c @@ -39,6 +39,7 @@ #include "vlc_video.h" #include "video_output.h" +#include "vlc_spu.h" #include "audio_output.h" #include "aout_internal.h" @@ -47,9 +48,14 @@ #include "vlc_playlist.h" #include "vlc_interface.h" #include "vlc_codec.h" +#include "vlc_filter.h" #include "vlc_httpd.h" #include "vlc_vlm.h" +#include "vlc_vod.h" +#include "vlc_tls.h" +#include "vlc_xml.h" + /***************************************************************************** * Local prototypes *****************************************************************************/ @@ -121,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"; @@ -149,10 +159,18 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type ) i_size = sizeof(encoder_t); psz_type = "encoder"; break; + case VLC_OBJECT_FILTER: + i_size = sizeof(filter_t); + psz_type = "filter"; + break; case VLC_OBJECT_VOUT: i_size = sizeof(vout_thread_t); psz_type = "video output"; break; + case VLC_OBJECT_SPU: + i_size = sizeof(spu_t); + psz_type = "subpicture unit"; + break; case VLC_OBJECT_AOUT: i_size = sizeof(aout_instance_t); psz_type = "audio output"; @@ -169,6 +187,18 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type ) i_size = sizeof( vlm_t ); psz_type = "vlm dameon"; break; + case VLC_OBJECT_VOD: + 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"; @@ -194,12 +224,7 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type ) else { p_new = malloc( i_size ); - - if( !p_new ) - { - return NULL; - } - + if( !p_new ) return NULL; memset( p_new, 0, i_size ); } @@ -212,13 +237,15 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type ) p_new->b_error = VLC_FALSE; p_new->b_dead = VLC_FALSE; p_new->b_attached = VLC_FALSE; + p_new->b_force = VLC_FALSE; p_new->i_vars = 0; p_new->p_vars = (variable_t *)malloc( 16 * sizeof( variable_t ) ); if( !p_new->p_vars ) { - free( p_new ); + if( i_type != VLC_OBJECT_ROOT ) + free( p_new ); return NULL; } @@ -370,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 ); } /**