+#define p_bank p_this->p_libvlc_global->p_module_bank
+ if( p_bank->b_cache ) CacheSave( p_this );
+ while( p_bank->i_loaded_cache-- )
+ {
+ if( p_bank->pp_loaded_cache[p_bank->i_loaded_cache] )
+ {
+ DeleteModule( p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->p_module, p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->b_used );
+ free( p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->psz_file );
+ free( p_bank->pp_loaded_cache[p_bank->i_loaded_cache] );
+ p_bank->pp_loaded_cache[p_bank->i_loaded_cache] = NULL;
+ }
+ }
+ if( p_bank->pp_loaded_cache )
+ {
+ free( p_bank->pp_loaded_cache );
+ p_bank->pp_loaded_cache = NULL;
+ }
+ while( p_bank->i_cache-- )
+ {
+ free( p_bank->pp_cache[p_bank->i_cache]->psz_file );
+ free( p_bank->pp_cache[p_bank->i_cache] );
+ p_bank->pp_cache[p_bank->i_cache] = NULL;
+ }
+ if( p_bank->pp_cache )
+ {
+ free( p_bank->pp_cache );
+ p_bank->pp_cache = NULL;
+ }
+#undef p_bank