From 8210d67fc5e51e0951dbad9b833b89a351bdb1f6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Mon, 24 Aug 2009 21:51:45 +0300 Subject: [PATCH] Remove config_GetUserDataDir()... ...and fix a memory leak in LUA --- include/vlc_configuration.h | 11 +++++------ modules/gui/skins2/win32/win32_factory.cpp | 2 +- modules/gui/skins2/x11/x11_factory.cpp | 2 +- modules/misc/gnutls.c | 2 +- modules/misc/lua/libs/misc.c | 4 +++- modules/misc/lua/vlc.c | 2 +- src/config/dirs.c | 11 ++--------- src/control/media_library.c | 2 +- src/libvlccore.sym | 1 - src/playlist/loadsave.c | 4 ++-- 10 files changed, 17 insertions(+), 24 deletions(-) diff --git a/include/vlc_configuration.h b/include/vlc_configuration.h index 30aa958674..bdd734e303 100644 --- a/include/vlc_configuration.h +++ b/include/vlc_configuration.h @@ -216,13 +216,12 @@ VLC_EXPORT( void, __config_ResetAll, ( vlc_object_t * ) ); VLC_EXPORT( module_config_t *, config_FindConfig,( vlc_object_t *, const char * ) LIBVLC_USED ); VLC_EXPORT(const char *, config_GetDataDir, ( void ) LIBVLC_USED); VLC_EXPORT(const char *, config_GetConfDir, ( void ) LIBVLC_USED); -VLC_EXPORT(char *, config_GetUserDataDir, ( void ) LIBVLC_USED); -typedef enum vlc_userdir { - /* User's home */ - VLC_HOME_DIR, - /* VLC configuration directory */ - VLC_CONFIG_DIR, +typedef enum vlc_userdir +{ + VLC_HOME_DIR, /* User's home */ + VLC_CONFIG_DIR, /* VLC-specific configuration directory */ + VLC_DATA_DIR, /* VLC-specific data directory */ } vlc_userdir_t; VLC_EXPORT(char *, config_GetUserDir, ( vlc_userdir_t ) LIBVLC_USED); diff --git a/modules/gui/skins2/win32/win32_factory.cpp b/modules/gui/skins2/win32/win32_factory.cpp index 47d4556c90..dd02a3aa1a 100644 --- a/modules/gui/skins2/win32/win32_factory.cpp +++ b/modules/gui/skins2/win32/win32_factory.cpp @@ -225,7 +225,7 @@ bool Win32Factory::init() } // Initialize the resource path - char *datadir = config_GetUserDataDir(); + char *datadir = config_GetUserDir( VLC_DATA_DIR ); m_resourcePath.push_back( (string)datadir + "\\skins" ); free( datadir ); m_resourcePath.push_back( (string)config_GetDataDir() + diff --git a/modules/gui/skins2/x11/x11_factory.cpp b/modules/gui/skins2/x11/x11_factory.cpp index fe80a7b768..5982ad7a52 100644 --- a/modules/gui/skins2/x11/x11_factory.cpp +++ b/modules/gui/skins2/x11/x11_factory.cpp @@ -75,7 +75,7 @@ bool X11Factory::init() ConnectionNumber( pDisplay ) ); // Initialize the resource path - char *datadir = config_GetUserDataDir(); + char *datadir = config_GetUserDataDir( VLC_DATA_DIR ); m_resourcePath.push_back( (string)datadir + "/skins2" ); free( datadir ); m_resourcePath.push_back( (string)"share/skins2" ); diff --git a/modules/misc/gnutls.c b/modules/misc/gnutls.c index cc40818ffa..1901f559c3 100644 --- a/modules/misc/gnutls.c +++ b/modules/misc/gnutls.c @@ -675,7 +675,7 @@ static int OpenClient (vlc_object_t *obj) goto error; } - char *userdir = config_GetUserDataDir (); + char *userdir = config_GetDataDir ( VLC_DATA_DIR ); if (userdir != NULL) { char path[strlen (userdir) + sizeof ("/ssl/private")]; diff --git a/modules/misc/lua/libs/misc.c b/modules/misc/lua/libs/misc.c index e080d2776c..e1b250f420 100644 --- a/modules/misc/lua/libs/misc.c +++ b/modules/misc/lua/libs/misc.c @@ -120,7 +120,9 @@ static int vlclua_datadir( lua_State *L ) static int vlclua_userdatadir( lua_State *L ) { - lua_pushstring( L, config_GetUserDataDir() ); + char *dir = config_GetUserDir( VLC_DATA_DIR ); + lua_pushstring( L, dir ); + free( dir ); return 1; } diff --git a/modules/misc/lua/vlc.c b/modules/misc/lua/vlc.c index f59c391480..2fa37dc027 100644 --- a/modules/misc/lua/vlc.c +++ b/modules/misc/lua/vlc.c @@ -108,7 +108,7 @@ static int file_compare( const char **a, const char **b ) int vlclua_dir_list( const char *luadirname, char **ppsz_dir_list ) { int i = 0; - char *datadir = config_GetUserDataDir(); + char *datadir = config_GetUserDir( VLC_DATA_DIR ); if( datadir == NULL ) return VLC_ENOMEM; diff --git a/src/config/dirs.c b/src/config/dirs.c index e2a2ed8ad3..98abc6e3e0 100644 --- a/src/config/dirs.c +++ b/src/config/dirs.c @@ -248,15 +248,6 @@ static char *config_GetAppDir (const char *xdg_name, const char *xdg_default) return psz_dir; } -/** - * Get the user's VLC data directory - * (used for stuff like the skins, custom lua modules, ...) - */ -char *config_GetUserDataDir( void ) -{ - return config_GetAppDir ("DATA", ".local/share"); -} - /** * Get the user's VLC cache directory * (used for stuff like the modules cache, the album art cache, ...) @@ -284,6 +275,8 @@ char *config_GetUserDir (vlc_userdir_t type) return config_GetHomeDir (); case VLC_CONFIG_DIR: return config_GetAppDir ("CONFIG", ".config"); + case VLC_DATA_DIR: + return config_GetAppDir ("DATA", ".local/share"); } assert (0); } diff --git a/src/control/media_library.c b/src/control/media_library.c index 2075f310b0..d25e414681 100644 --- a/src/control/media_library.c +++ b/src/control/media_library.c @@ -108,7 +108,7 @@ void libvlc_media_library_load( libvlc_media_library_t * p_mlib, libvlc_exception_t * p_e ) { - char *psz_datadir = config_GetUserDataDir(); + char *psz_datadir = config_GetUserDir( VLC_DATA_DIR ); char * psz_uri; if( !psz_datadir ) /* XXX: i doubt that this can ever happen */ diff --git a/src/libvlccore.sym b/src/libvlccore.sym index 4680bac348..d0dc367208 100644 --- a/src/libvlccore.sym +++ b/src/libvlccore.sym @@ -58,7 +58,6 @@ config_GetUserDir __config_GetInt __config_GetPsz __config_GetType -config_GetUserDataDir __config_PutFloat __config_PutInt __config_PutPsz diff --git a/src/playlist/loadsave.c b/src/playlist/loadsave.c index 7477b67c62..b1dc3abaa3 100644 --- a/src/playlist/loadsave.c +++ b/src/playlist/loadsave.c @@ -125,7 +125,7 @@ int playlist_MLLoad( playlist_t *p_playlist ) if( !config_GetInt( p_playlist, "media-library") ) return VLC_SUCCESS; - psz_datadir = config_GetUserDataDir(); + psz_datadir = config_GetUserDir( VLC_DATA_DIR ); if( !psz_datadir ) /* XXX: This should never happen */ { @@ -208,7 +208,7 @@ int playlist_MLDump( playlist_t *p_playlist ) if( !config_GetInt( p_playlist, "media-library") ) return VLC_SUCCESS; - psz_datadir = config_GetUserDataDir(); + psz_datadir = config_GetUserDir( VLC_DATA_DIR ); if( !psz_datadir ) /* XXX: This should never happen */ { -- 2.39.2