From: RĂ©mi Denis-Courmont Date: Sat, 30 Aug 2008 10:23:35 +0000 (+0300) Subject: One objects tree per instance rather than per process X-Git-Tag: 1.0.0-pre1~3681 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=0aee55f543790ba3230ef145707b0708e2c445f9;p=vlc One objects tree per instance rather than per process --- diff --git a/src/libvlc.c b/src/libvlc.c index 96cab09ca9..b1db6b5754 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -195,7 +195,7 @@ libvlc_int_t * libvlc_InternalCreate( void ) } /* Allocate a libvlc instance object */ - p_libvlc = vlc_custom_create( VLC_OBJECT(p_libvlc_global), sizeof (*priv), + p_libvlc = __vlc_custom_create( NULL, sizeof (*priv), VLC_OBJECT_LIBVLC, "libvlc" ); if( p_libvlc != NULL ) i_instances++; diff --git a/src/misc/objects.c b/src/misc/objects.c index 164298426a..031b26d2ce 100644 --- a/src/misc/objects.c +++ b/src/misc/objects.c @@ -144,20 +144,16 @@ void *__vlc_custom_create( vlc_object_t *p_this, size_t i_size, if( p_this == NULL ) { - /* Only the global root object is created out of the blue */ - p_new->p_libvlc = NULL; + if( i_type == VLC_OBJECT_LIBVLC ) + p_new->p_libvlc = (libvlc_int_t*)p_new; + else + p_new->p_libvlc = NULL; - object_counter = 0; /* reset */ p_this = p_priv->next = p_priv->prev = p_new; vlc_mutex_init( &structure_lock ); } else - { - if( i_type == VLC_OBJECT_LIBVLC ) - p_new->p_libvlc = (libvlc_int_t*)p_new; - else - p_new->p_libvlc = p_this->p_libvlc; - } + p_new->p_libvlc = p_this->p_libvlc; vlc_spin_init( &p_priv->ref_spin ); p_priv->i_refcount = 1;