[vlc-devel] commit: Move psz_vlcpath out of p_root ( Rémi Denis-Courmont )
git version control
git at videolan.org
Sun Sep 28 19:14:46 CEST 2008
vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Sun Sep 28 20:18:01 2008 +0300| [b4f8c0f6a4b158e5dc824734ee23ce47a3f07ec2] | committer: Rémi Denis-Courmont
Move psz_vlcpath out of p_root
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b4f8c0f6a4b158e5dc824734ee23ce47a3f07ec2
---
src/config/dirs.c | 5 ++---
src/libvlc.h | 16 ++--------------
src/misc/beos_specific.cpp | 4 ++--
src/misc/darwin_specific.c | 4 ++--
src/misc/linux_specific.c | 2 +-
src/misc/threads.c | 7 ++++---
src/misc/variables.c | 2 +-
src/misc/win32_specific.c | 6 +++---
src/modules/modules.c | 4 +++-
9 files changed, 20 insertions(+), 30 deletions(-)
diff --git a/src/config/dirs.c b/src/config/dirs.c
index 5877b4b..16cbf81 100644
--- a/src/config/dirs.c
+++ b/src/config/dirs.c
@@ -64,8 +64,7 @@ const char *config_GetDataDir( void )
if( *path == '\0' )
{
- snprintf( path, sizeof( path ), "%s" DIR_SEP DIR_SHARE,
- vlc_global()->psz_vlcpath );
+ snprintf( path, sizeof( path ), "%s" DIR_SEP DIR_SHARE, psz_vlcpath );
path[sizeof( path ) - 1] = '\0';
}
return path;
@@ -155,7 +154,7 @@ const char *config_GetConfDir( void )
if( *path == '\0' )
{
snprintf( path, sizeof( path ), "%s"DIR_SEP DIR_SHARE, /* FIXME: Duh? */
- vlc_global()->psz_vlcpath );
+ psz_vlcpath );
path[sizeof( path ) - 1] = '\0';
}
return path;
diff --git a/src/libvlc.h b/src/libvlc.h
index 8b47fd4..fbf1a02 100644
--- a/src/libvlc.h
+++ b/src/libvlc.h
@@ -140,26 +140,14 @@ __vlc_custom_create (vlc_object_t *p_this, size_t i_size, int i_type,
#define vlc_custom_create(o, s, t, n) \
__vlc_custom_create(VLC_OBJECT(o), s, t, n)
-/**
- * libvlc_global_data_t (global variable)
- *
- * This structure has an unique instance, statically allocated in libvlc and
- * never accessed from the outside. It stores process-wide VLC variables,
- * mostly process-wide locks, and (currently) the module bank and objects tree.
- */
-typedef struct libvlc_global_data_t
-{
- VLC_COMMON_MEMBERS
-
- char * psz_vlcpath;
-} libvlc_global_data_t;
/**
* The module bank
*/
extern module_bank_t *p_module_bank;
-libvlc_global_data_t *vlc_global (void);
+vlc_object_t *vlc_global (void);
+extern char *psz_vlcpath;
/**
* Private LibVLC data for each object.
diff --git a/src/misc/beos_specific.cpp b/src/misc/beos_specific.cpp
index f1a14d0..8dbec2e 100644
--- a/src/misc/beos_specific.cpp
+++ b/src/misc/beos_specific.cpp
@@ -112,7 +112,7 @@ void system_End( libvlc_int_t *p_this )
vlc_thread_join( p_appthread );
vlc_object_release( p_appthread );
- free( vlc_global()->psz_vlcpath );
+ free( psz_vlcpath );
}
/* following functions are local */
@@ -182,7 +182,7 @@ void VlcApplication::ReadyToRun( )
BEntry entry( &info.ref );
entry.GetPath( &path );
path.GetParent( &path );
- vlc_global()->psz_vlcpath = strdup( path.Path() );
+ psz_vlcpath = strdup( path.Path() );
/* Tell the main thread we are finished initializing the BApplication */
vlc_thread_ready( p_this );
diff --git a/src/misc/darwin_specific.c b/src/misc/darwin_specific.c
index 6e68ee1..f751c63 100644
--- a/src/misc/darwin_specific.c
+++ b/src/misc/darwin_specific.c
@@ -123,7 +123,7 @@ void system_Init( libvlc_int_t *p_this, int *pi_argc, const char *ppsz_argv[] )
p_char = strdup( ppsz_argv[ 0 ] );
}
- vlc_global()->psz_vlcpath = p_char;
+ psz_vlcpath = p_char;
/* Remove trailing program name */
for( ; *p_char ; )
@@ -186,6 +186,6 @@ void system_Configure( libvlc_int_t *p_this, int *pi_argc, const char *ppsz_argv
void system_End( libvlc_int_t *p_this )
{
(void)p_this;
- free( vlc_global()->psz_vlcpath );
+ free( psz_vlcpath );
}
diff --git a/src/misc/linux_specific.c b/src/misc/linux_specific.c
index 0a4be0a..6dbf25e 100644
--- a/src/misc/linux_specific.c
+++ b/src/misc/linux_specific.c
@@ -36,7 +36,7 @@ static void set_libvlc_path (void)
assert (strlen (LIBDIR) < sizeof (libvlc_path));
strcpy (libvlc_path, LIBDIR); /* fail safe */
- vlc_global ()->psz_vlcpath = libvlc_path;
+ psz_vlcpath = libvlc_path;
/* Find the path to libvlc (i.e. ourselves) */
FILE *maps = fopen ("/proc/self/maps", "rt");
diff --git a/src/misc/threads.c b/src/misc/threads.c
index 32855d1..6d08653 100644
--- a/src/misc/threads.c
+++ b/src/misc/threads.c
@@ -59,11 +59,12 @@ static vlc_threadvar_t cancel_key;
/**
* Global process-wide VLC object.
- * Contains inter-instance data, such as the module cache and global mutexes.
+ * Contains the global named mutexes.
+ * TODO: remove it.
*/
-static libvlc_global_data_t *p_root;
+static vlc_object_t *p_root;
-libvlc_global_data_t *vlc_global( void )
+vlc_object_t *vlc_global( void )
{
assert( i_initializations > 0 );
return p_root;
diff --git a/src/misc/variables.c b/src/misc/variables.c
index c524568..37fcd79 100644
--- a/src/misc/variables.c
+++ b/src/misc/variables.c
@@ -856,7 +856,7 @@ int __var_Get( vlc_object_t *p_this, const char *psz_name, vlc_value_t *p_val )
*/
vlc_mutex_t *var_AcquireMutex( const char *name )
{
- libvlc_global_data_t *p_global = vlc_global();
+ vlc_object_t *p_global = vlc_global();
vlc_value_t val;
if( var_Create( p_global, name, VLC_VAR_MUTEX ) )
diff --git a/src/misc/win32_specific.c b/src/misc/win32_specific.c
index 1f027cc..b89eabf 100644
--- a/src/misc/win32_specific.c
+++ b/src/misc/win32_specific.c
@@ -76,7 +76,7 @@ void system_Init( libvlc_int_t *p_this, int *pi_argc, const char *ppsz_argv[] )
}
#endif
- vlc_global()->psz_vlcpath = strdup( psz_path );
+ psz_vlcpath = strdup( psz_path );
/* Set the default file-translation mode */
#if !defined( UNDER_CE )
@@ -371,8 +371,8 @@ void system_End( libvlc_int_t *p_this )
HWND ipcwindow;
if( p_this && vlc_global() )
{
- free( vlc_global()->psz_vlcpath );
- vlc_global()->psz_vlcpath = NULL;
+ free( psz_vlcpath );
+ psz_vlcpath = NULL;
}
if( ipcwindow = FindWindow( 0, L"VLC ipc "VERSION ) )
diff --git a/src/modules/modules.c b/src/modules/modules.c
index 85b12ae..ee036e3 100644
--- a/src/modules/modules.c
+++ b/src/modules/modules.c
@@ -867,13 +867,15 @@ static char * copy_next_paths_token( char * paths, char ** remaining_paths )
return path;
}
+extern char *psz_vlcpath = NULL;
+
/*****************************************************************************
* AllocateAllPlugins: load all plugin modules we can find.
*****************************************************************************/
#ifdef HAVE_DYNAMIC_PLUGINS
static void AllocateAllPlugins( vlc_object_t *p_this )
{
- const char *vlcpath = vlc_global()->psz_vlcpath;
+ const char *vlcpath = psz_vlcpath;
int count,i;
char * path;
vlc_array_t *arraypaths = vlc_array_new();
More information about the vlc-devel
mailing list