]> git.sesse.net Git - vlc/commitdiff
One objects tree per instance rather than per process
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Sat, 30 Aug 2008 10:23:35 +0000 (13:23 +0300)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Sat, 30 Aug 2008 10:32:45 +0000 (13:32 +0300)
src/libvlc.c
src/misc/objects.c

index 96cab09ca9e549e27557ba79813b564a82963304..b1db6b5754354b03b84cf98c206c6c05c3a67f95 100644 (file)
@@ -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++;
index 164298426a0ffbcf0a025df731eff5ad6a8a8b91..031b26d2cefae5b2b4901203183da630ee9c3160 100644 (file)
@@ -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;