X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmisc%2Fobjects.c;h=8fb4361d9a1137cce418cb11e2dfd128dd1ebbd3;hb=adf38793e7d84d0adbe8656e44f7135785b4f34d;hp=f127a7f51877d954298264e3974685826228c3cb;hpb=d049b8aa9c808b13db2582fc535d3f53d11eeac3;p=vlc diff --git a/src/misc/objects.c b/src/misc/objects.c index f127a7f518..8fb4361d9a 100644 --- a/src/misc/objects.c +++ b/src/misc/objects.c @@ -1,7 +1,7 @@ /***************************************************************************** * objects.c: vlc_object_t handling ***************************************************************************** - * Copyright (C) 2004 VideoLAN + * Copyright (C) 2004 the VideoLAN team * $Id$ * * Authors: Samuel Hocevar @@ -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 *****************************************************************************/ @@ -65,7 +71,7 @@ static void SetAttachment ( vlc_object_t *, vlc_bool_t ); static vlc_list_t * NewList ( int ); static void ListReplace ( vlc_list_t *, vlc_object_t *, int ); -static void ListAppend ( vlc_list_t *, vlc_object_t * ); +/*static void ListAppend ( vlc_list_t *, vlc_object_t * );*/ static int CountChildren ( vlc_object_t *, int ); static void ListChildren ( vlc_list_t *, vlc_object_t *, int ); @@ -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 ); } /** @@ -1000,7 +1029,7 @@ static void ListReplace( vlc_list_t *p_list, vlc_object_t *p_object, return; } -static void ListAppend( vlc_list_t *p_list, vlc_object_t *p_object ) +/*static void ListAppend( vlc_list_t *p_list, vlc_object_t *p_object ) { if( p_list == NULL ) { @@ -1021,7 +1050,7 @@ static void ListAppend( vlc_list_t *p_list, vlc_object_t *p_object ) p_list->i_count++; return; -} +}*/ static int CountChildren( vlc_object_t *p_this, int i_type ) {