* Global process-wide VLC object.
* Contains inter-instance data, such as the module cache and global mutexes.
*/
-static vlc_object_t *p_root;
-static libvlc_global_data_t libvlc_global;
+static libvlc_global_data_t *p_root;
libvlc_global_data_t *vlc_global( void )
{
assert( i_initializations > 0 );
- return &libvlc_global;
+ return p_root;
}
if( i_initializations == 0 )
{
- /* We should be safe now. Do all the initialization stuff we want. */
- libvlc_global.b_ready = false;
-
- p_root = vlc_custom_create( VLC_OBJECT(&libvlc_global), 0,
+ p_root = vlc_custom_create( NULL, sizeof( *p_root ),
VLC_OBJECT_GLOBAL, "global" );
if( p_root == NULL )
{
i_ret = VLC_ENOMEM;
goto out;
}
+
+ /* We should be safe now. Do all the initialization stuff we want. */
+ p_root->b_ready = false;
vlc_threadvar_create( p_root, &msg_context_global_key );
}
i_initializations++;
#endif
assert( i_initializations > 0 );
- if( --i_initializations == 0 )
+ if( i_initializations == 0 )
vlc_object_release( p_root );
+ i_initializations--;
#if defined( UNDER_CE )
#elif defined( WIN32 )
/*****************************************************************************
* vlc_mutex_init: initialize a mutex
*****************************************************************************/
-int __vlc_mutex_init( vlc_mutex_t *p_mutex )
+int vlc_mutex_init( vlc_mutex_t *p_mutex )
{
#if defined( UNDER_CE )
InitializeCriticalSection( &p_mutex->csection );
/*****************************************************************************
* vlc_mutex_init: initialize a recursive mutex (Do not use)
*****************************************************************************/
-int __vlc_mutex_init_recursive( vlc_mutex_t *p_mutex )
+int vlc_mutex_init_recursive( vlc_mutex_t *p_mutex )
{
#if defined( WIN32 )
/* Create mutex returns a recursive mutex */