From 3e0219e05af8cec582c54e15d9941681deb51b2d Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sun, 5 Oct 2008 15:36:50 +0300 Subject: [PATCH] Bury the module pointer inside modules.c --- src/libvlc.h | 5 ----- src/modules/cache.c | 22 +++++++++++----------- src/modules/modules.c | 8 ++++---- src/modules/modules.h | 6 +++--- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/src/libvlc.h b/src/libvlc.h index 1bf5e8f4a2..cc3bed0bfe 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -141,11 +141,6 @@ __vlc_custom_create (vlc_object_t *p_this, size_t i_size, int i_type, __vlc_custom_create(VLC_OBJECT(o), s, t, n) -/** - * The module bank - */ -extern module_bank_t *p_module_bank; - extern char *psz_vlcpath; #ifdef LIBVLC_USE_PTHREAD diff --git a/src/modules/cache.c b/src/modules/cache.c index cadb705f71..e4002f456e 100644 --- a/src/modules/cache.c +++ b/src/modules/cache.c @@ -102,7 +102,7 @@ static int CacheSaveConfig ( module_t *, FILE * ); * actually load the dynamically loadable module. * This allows us to only fully load plugins when they are actually used. *****************************************************************************/ -void CacheLoad( vlc_object_t *p_this, bool b_delete ) +void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete ) { char *psz_filename, *psz_cachedir = config_GetCacheDir(); FILE *file; @@ -230,7 +230,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete ) return; } - p_module_bank->i_loaded_cache = 0; + p_bank->i_loaded_cache = 0; if (fread( &i_cache, 1, sizeof(i_cache), file ) != sizeof(i_cache) ) { msg_Warn( p_this, "This doesn't look like a valid plugins cache " @@ -240,7 +240,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete ) } if( i_cache ) - pp_cache = p_module_bank->pp_loaded_cache = + pp_cache = p_bank->pp_loaded_cache = malloc( i_cache * sizeof(void *) ); #define LOAD_IMMEDIATE(a) \ @@ -271,7 +271,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete ) int i_submodules; pp_cache[i] = malloc( sizeof(module_cache_t) ); - p_module_bank->i_loaded_cache++; + p_bank->i_loaded_cache++; /* Load common info */ LOAD_STRING( pp_cache[i]->psz_file ); @@ -337,7 +337,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete ) msg_Warn( p_this, "plugins cache not loaded (corrupted)" ); /* TODO: cleanup */ - p_module_bank->i_loaded_cache = 0; + p_bank->i_loaded_cache = 0; fclose( file ); return; @@ -467,7 +467,7 @@ static int CacheSaveSubmodule( FILE *file, module_t *p_module ); /***************************************************************************** * SavePluginsCache: saves the plugins cache to a file *****************************************************************************/ -void CacheSave( vlc_object_t *p_this ) +void CacheSave( vlc_object_t *p_this, module_bank_t *p_bank ) { static char const psz_tag[] = "Signature: 8a477f597d28d172789f06886806bc55\r\n" @@ -537,8 +537,8 @@ void CacheSave( vlc_object_t *p_this ) if (fwrite (&i_file_size, sizeof (i_file_size), 1, file) != 1) goto error; - i_cache = p_module_bank->i_cache; - pp_cache = p_module_bank->pp_cache; + i_cache = p_bank->i_cache; + pp_cache = p_bank->pp_cache; if (fwrite( &i_cache, sizeof (i_cache), 1, file) != 1) goto error; @@ -724,14 +724,14 @@ void CacheMerge( vlc_object_t *p_this, module_t *p_cache, module_t *p_module ) /***************************************************************************** * CacheFind: finds the cache entry corresponding to a file *****************************************************************************/ -module_cache_t *CacheFind( const char *psz_file, +module_cache_t *CacheFind( module_bank_t *p_bank, const char *psz_file, int64_t i_time, int64_t i_size ) { module_cache_t **pp_cache; int i_cache, i; - pp_cache = p_module_bank->pp_loaded_cache; - i_cache = p_module_bank->i_loaded_cache; + pp_cache = p_bank->pp_loaded_cache; + i_cache = p_bank->i_loaded_cache; for( i = 0; i < i_cache; i++ ) { diff --git a/src/modules/modules.c b/src/modules/modules.c index 7113e9d43c..7647993a03 100644 --- a/src/modules/modules.c +++ b/src/modules/modules.c @@ -90,7 +90,7 @@ #include "modules/modules.h" #include "modules/builtin.h" -module_bank_t *p_module_bank = NULL; +static module_bank_t *p_module_bank = NULL; /***************************************************************************** * Local prototypes @@ -176,7 +176,7 @@ void __module_EndBank( vlc_object_t *p_this ) config_AutoSaveConfigFile( p_this ); #ifdef HAVE_DYNAMIC_PLUGINS - if( p_bank->b_cache ) CacheSave( p_this ); + if( p_bank->b_cache ) CacheSave( p_this, p_module_bank ); while( p_bank->i_loaded_cache-- ) { if( p_bank->pp_loaded_cache[p_bank->i_loaded_cache] ) @@ -262,7 +262,7 @@ void module_LoadPlugins( vlc_object_t * p_this, bool b_cache_delete ) p_module_bank->b_cache = true; if( p_module_bank->b_cache || b_cache_delete ) - CacheLoad( p_this, b_cache_delete ); + CacheLoad( p_this, p_module_bank, b_cache_delete ); AllocateAllPlugins( p_this ); #endif @@ -1118,7 +1118,7 @@ static int AllocatePluginFile( vlc_object_t * p_this, char * psz_file, * Check our plugins cache first then load plugin if needed */ p_cache_entry = - CacheFind( psz_file, i_file_time, i_file_size ); + CacheFind( p_module_bank, psz_file, i_file_time, i_file_size ); if( !p_cache_entry ) { diff --git a/src/modules/modules.h b/src/modules/modules.h index a87d9e0907..74bc8f72fd 100644 --- a/src/modules/modules.h +++ b/src/modules/modules.h @@ -164,8 +164,8 @@ void module_Unload (module_handle_t); /* Plugins cache */ void CacheMerge (vlc_object_t *, module_t *, module_t *); -void CacheLoad (vlc_object_t *, bool); -void CacheSave (vlc_object_t * ); -module_cache_t * CacheFind (const char *, int64_t, int64_t); +void CacheLoad (vlc_object_t *, module_bank_t *, bool); +void CacheSave (vlc_object_t *, module_bank_t *); +module_cache_t * CacheFind (module_bank_t *, const char *, int64_t, int64_t); #endif /* !__LIBVLC_MODULES_H */ -- 2.39.2