Commit 3e0219e0 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Bury the module pointer inside modules.c

parent 20924d48
...@@ -141,11 +141,6 @@ __vlc_custom_create (vlc_object_t *p_this, size_t i_size, int i_type, ...@@ -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) __vlc_custom_create(VLC_OBJECT(o), s, t, n)
/**
* The module bank
*/
extern module_bank_t *p_module_bank;
extern char *psz_vlcpath; extern char *psz_vlcpath;
#ifdef LIBVLC_USE_PTHREAD #ifdef LIBVLC_USE_PTHREAD
......
...@@ -102,7 +102,7 @@ static int CacheSaveConfig ( module_t *, FILE * ); ...@@ -102,7 +102,7 @@ static int CacheSaveConfig ( module_t *, FILE * );
* actually load the dynamically loadable module. * actually load the dynamically loadable module.
* This allows us to only fully load plugins when they are actually used. * 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(); char *psz_filename, *psz_cachedir = config_GetCacheDir();
FILE *file; FILE *file;
...@@ -230,7 +230,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete ) ...@@ -230,7 +230,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete )
return; 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) ) 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 " 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 ) ...@@ -240,7 +240,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete )
} }
if( i_cache ) if( i_cache )
pp_cache = p_module_bank->pp_loaded_cache = pp_cache = p_bank->pp_loaded_cache =
malloc( i_cache * sizeof(void *) ); malloc( i_cache * sizeof(void *) );
#define LOAD_IMMEDIATE(a) \ #define LOAD_IMMEDIATE(a) \
...@@ -271,7 +271,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete ) ...@@ -271,7 +271,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete )
int i_submodules; int i_submodules;
pp_cache[i] = malloc( sizeof(module_cache_t) ); pp_cache[i] = malloc( sizeof(module_cache_t) );
p_module_bank->i_loaded_cache++; p_bank->i_loaded_cache++;
/* Load common info */ /* Load common info */
LOAD_STRING( pp_cache[i]->psz_file ); LOAD_STRING( pp_cache[i]->psz_file );
...@@ -337,7 +337,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete ) ...@@ -337,7 +337,7 @@ void CacheLoad( vlc_object_t *p_this, bool b_delete )
msg_Warn( p_this, "plugins cache not loaded (corrupted)" ); msg_Warn( p_this, "plugins cache not loaded (corrupted)" );
/* TODO: cleanup */ /* TODO: cleanup */
p_module_bank->i_loaded_cache = 0; p_bank->i_loaded_cache = 0;
fclose( file ); fclose( file );
return; return;
...@@ -467,7 +467,7 @@ static int CacheSaveSubmodule( FILE *file, module_t *p_module ); ...@@ -467,7 +467,7 @@ static int CacheSaveSubmodule( FILE *file, module_t *p_module );
/***************************************************************************** /*****************************************************************************
* SavePluginsCache: saves the plugins cache to a file * 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[] = static char const psz_tag[] =
"Signature: 8a477f597d28d172789f06886806bc55\r\n" "Signature: 8a477f597d28d172789f06886806bc55\r\n"
...@@ -537,8 +537,8 @@ void CacheSave( vlc_object_t *p_this ) ...@@ -537,8 +537,8 @@ void CacheSave( vlc_object_t *p_this )
if (fwrite (&i_file_size, sizeof (i_file_size), 1, file) != 1) if (fwrite (&i_file_size, sizeof (i_file_size), 1, file) != 1)
goto error; goto error;
i_cache = p_module_bank->i_cache; i_cache = p_bank->i_cache;
pp_cache = p_module_bank->pp_cache; pp_cache = p_bank->pp_cache;
if (fwrite( &i_cache, sizeof (i_cache), 1, file) != 1) if (fwrite( &i_cache, sizeof (i_cache), 1, file) != 1)
goto error; goto error;
...@@ -724,14 +724,14 @@ void CacheMerge( vlc_object_t *p_this, module_t *p_cache, module_t *p_module ) ...@@ -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 * 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 ) int64_t i_time, int64_t i_size )
{ {
module_cache_t **pp_cache; module_cache_t **pp_cache;
int i_cache, i; int i_cache, i;
pp_cache = p_module_bank->pp_loaded_cache; pp_cache = p_bank->pp_loaded_cache;
i_cache = p_module_bank->i_loaded_cache; i_cache = p_bank->i_loaded_cache;
for( i = 0; i < i_cache; i++ ) for( i = 0; i < i_cache; i++ )
{ {
......
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
#include "modules/modules.h" #include "modules/modules.h"
#include "modules/builtin.h" #include "modules/builtin.h"
module_bank_t *p_module_bank = NULL; static module_bank_t *p_module_bank = NULL;
/***************************************************************************** /*****************************************************************************
* Local prototypes * Local prototypes
...@@ -176,7 +176,7 @@ void __module_EndBank( vlc_object_t *p_this ) ...@@ -176,7 +176,7 @@ void __module_EndBank( vlc_object_t *p_this )
config_AutoSaveConfigFile( p_this ); config_AutoSaveConfigFile( p_this );
#ifdef HAVE_DYNAMIC_PLUGINS #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-- ) while( p_bank->i_loaded_cache-- )
{ {
if( p_bank->pp_loaded_cache[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 ) ...@@ -262,7 +262,7 @@ void module_LoadPlugins( vlc_object_t * p_this, bool b_cache_delete )
p_module_bank->b_cache = true; p_module_bank->b_cache = true;
if( p_module_bank->b_cache || b_cache_delete ) 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 ); AllocateAllPlugins( p_this );
#endif #endif
...@@ -1118,7 +1118,7 @@ static int AllocatePluginFile( vlc_object_t * p_this, char * psz_file, ...@@ -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 * Check our plugins cache first then load plugin if needed
*/ */
p_cache_entry = 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 ) if( !p_cache_entry )
{ {
......
...@@ -164,8 +164,8 @@ void module_Unload (module_handle_t); ...@@ -164,8 +164,8 @@ void module_Unload (module_handle_t);
/* Plugins cache */ /* Plugins cache */
void CacheMerge (vlc_object_t *, module_t *, module_t *); void CacheMerge (vlc_object_t *, module_t *, module_t *);
void CacheLoad (vlc_object_t *, bool); void CacheLoad (vlc_object_t *, module_bank_t *, bool);
void CacheSave (vlc_object_t * ); void CacheSave (vlc_object_t *, module_bank_t *);
module_cache_t * CacheFind (const char *, int64_t, int64_t); module_cache_t * CacheFind (module_bank_t *, const char *, int64_t, int64_t);
#endif /* !__LIBVLC_MODULES_H */ #endif /* !__LIBVLC_MODULES_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment