Commit 0aee55f5 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

One objects tree per instance rather than per process

parent c348861e
...@@ -195,7 +195,7 @@ libvlc_int_t * libvlc_InternalCreate( void ) ...@@ -195,7 +195,7 @@ libvlc_int_t * libvlc_InternalCreate( void )
} }
/* Allocate a libvlc instance object */ /* 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" ); VLC_OBJECT_LIBVLC, "libvlc" );
if( p_libvlc != NULL ) if( p_libvlc != NULL )
i_instances++; i_instances++;
......
...@@ -144,20 +144,16 @@ void *__vlc_custom_create( vlc_object_t *p_this, size_t i_size, ...@@ -144,20 +144,16 @@ void *__vlc_custom_create( vlc_object_t *p_this, size_t i_size,
if( p_this == NULL ) if( p_this == NULL )
{ {
/* Only the global root object is created out of the blue */ if( i_type == VLC_OBJECT_LIBVLC )
p_new->p_libvlc = NULL; 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; p_this = p_priv->next = p_priv->prev = p_new;
vlc_mutex_init( &structure_lock ); vlc_mutex_init( &structure_lock );
} }
else else
{ p_new->p_libvlc = p_this->p_libvlc;
if( i_type == VLC_OBJECT_LIBVLC )
p_new->p_libvlc = (libvlc_int_t*)p_new;
else
p_new->p_libvlc = p_this->p_libvlc;
}
vlc_spin_init( &p_priv->ref_spin ); vlc_spin_init( &p_priv->ref_spin );
p_priv->i_refcount = 1; p_priv->i_refcount = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment