Changeset 2e0409a12910ea5ee7a314501b6c11fe9689fe79

Show
Ignore:
Timestamp:
20/05/07 12:03:51 (2 years ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1179655431 +0000
git-parent:

[c262bd272894498e7a14160437c58aa0d753a587]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1179655431 +0000
Message:

Hide libvlc_global_data_t from plugins

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • include/main.h

    r79f9e3f r2e0409a  
    2626  #error You are not libvlc or one of its plugins. You cannot include this file 
    2727#endif 
    28  
    29 /***************************************************************************** 
    30  * libvlc_global_data_t (global variable) 
    31  ***************************************************************************** 
    32  * This structure has an unique instance, statically allocated in main and 
    33  * never accessed from the outside. It stores once-initialized data such as 
    34  * the CPU capabilities or the global lock. 
    35  *****************************************************************************/ 
    36 struct libvlc_global_data_t 
    37 { 
    38     VLC_COMMON_MEMBERS 
    39  
    40     vlc_bool_t             b_ready;     ///< Initialization boolean 
    41     uint32_t               i_cpu;       ///< CPU extensions 
    42  
    43    /* Object structure data */ 
    44     int                    i_counter;   ///< object counter 
    45     int                    i_objects;   ///< Attached objects count 
    46     vlc_object_t **        pp_objects;  ///< Array of all objects 
    47  
    48     module_bank_t *        p_module_bank; ///< The module bank 
    49     intf_thread_t         *p_probe;       ///< Devices prober 
    50  
    51     /* Arch-specific variables */ 
    52 #if !defined( WIN32 ) 
    53     vlc_bool_t             b_daemon; 
    54 #endif 
    55 #if defined( SYS_BEOS ) 
    56     vlc_object_t *         p_appthread; 
    57     char *                 psz_vlcpath; 
    58 #elif defined( __APPLE__ ) 
    59     char *                 psz_vlcpath; 
    60     vlc_iconv_t            iconv_macosx; /* for HFS+ file names */ 
    61     vlc_mutex_t            iconv_lock; 
    62 #elif defined( WIN32 ) && !defined( UNDER_CE ) 
    63     SIGNALOBJECTANDWAIT    SignalObjectAndWait; 
    64     vlc_bool_t             b_fast_mutex; 
    65     int                    i_win9x_cv; 
    66     char *                 psz_vlcpath; 
    67 #elif defined( UNDER_CE ) 
    68     char *                 psz_vlcpath; 
    69 #endif 
    70 }; 
    7128 
    7229/***************************************************************************** 
  • include/vlc_common.h

    rc262bd2 r2e0409a  
    567567                                                                            \ 
    568568    /* Stuff related to the libvlc structure */                             \ 
    569     libvlc_global_data_t *p_libvlc_global;         /**< root of all evil */ \ 
     569    vlc_object_t *p_libvlc_global;                 /**< root of all evil */ \ 
    570570    libvlc_int_t *p_libvlc;                  /**< (root of all evil) - 1 */ \ 
    571571                                                                            \ 
  • modules/codec/ffmpeg/ffmpeg.c

    r7b0773e r2e0409a  
    235235#endif 
    236236 
    237     var_Create( (vlc_object_t *)p_module->p_libvlc_global, "avcodec", 
    238                 VLC_VAR_MUTEX ); 
     237    var_Create( p_module->p_libvlc_global, "avcodec", VLC_VAR_MUTEX ); 
    239238 
    240239vlc_module_end(); 
     
    340339    vlc_value_t lockval; 
    341340 
    342     var_Get( (vlc_object_t *)p_dec->p_libvlc_global, "avcodec", &lockval ); 
     341    var_Get( p_dec->p_libvlc_global, "avcodec", &lockval ); 
    343342 
    344343    switch( p_sys->i_cat ) 
     
    429428    vlc_value_t lockval; 
    430429 
    431     var_Get( (vlc_object_t *)p_object->p_libvlc_global, "avcodec", &lockval ); 
     430    var_Get( p_object->p_libvlc_global, "avcodec", &lockval ); 
    432431    vlc_mutex_lock( lockval.p_address ); 
    433432 
  • modules/control/http/http.c

    rd3fe7f2 r2e0409a  
    126126    char          *psz_src; 
    127127 
    128     var_Create(p_intf->p_libvlc_global, "http-host", VLC_VAR_STRING ); 
    129     psz_address=var_GetString(p_intf->p_libvlc_global, "http-host"); 
     128    var_Create(p_intf->p_libvlc, "http-host", VLC_VAR_STRING ); 
     129    psz_address = var_GetString(p_intf->p_libvlc, "http-host"); 
    130130    if( !psz_address || !*psz_address ) 
    131131    { 
     
    282282        /* Ugly hack to run several HTTP servers on different ports */ 
    283283        snprintf( psz_tmp, sizeof (psz_tmp), "%s:%d", psz_address, i_port + 1 ); 
    284         var_SetString( p_intf->p_libvlc_global, "http-host", psz_tmp ); 
     284        var_SetString( p_intf->p_libvlc, "http-host", psz_tmp ); 
    285285    } 
    286286 
  • modules/stream_out/bridge.c

    rd3fe7f2 r2e0409a  
    128128static bridge_t *__GetBridge( vlc_object_t *p_object ) 
    129129{ 
    130     libvlc_global_data_t *p_libvlc_global = p_object->p_libvlc_global; 
    131130    bridge_t *p_bridge; 
    132131    vlc_value_t val; 
    133132 
    134     if( var_Get( p_libvlc_global, "bridge-struct", &val ) != VLC_SUCCESS
     133    if( var_Get( p_object->p_libvlc_global, "bridge-struct", &val )
    135134    { 
    136135        p_bridge = NULL; 
     
    220219    if ( p_bridge == NULL ) 
    221220    { 
    222         libvlc_global_data_t *p_libvlc_global = p_stream->p_libvlc_global; 
     221        vlc_object_t *p_libvlc_global = p_stream->p_libvlc_global; 
    223222        vlc_value_t val; 
    224223 
     
    520519    if( b_no_es ) 
    521520    { 
    522         libvlc_global_data_t *p_libvlc_global = p_stream->p_libvlc_global; 
     521        vlc_object_t *p_libvlc_global = p_stream->p_libvlc_global; 
    523522        for ( i = 0; i < p_bridge->i_es_num; i++ ) 
    524523            free( p_bridge->pp_es[i] ); 
  • modules/stream_out/mosaic_bridge.c

    rce0e4fb r2e0409a  
    178178    sout_stream_t        *p_stream = (sout_stream_t *)p_this; 
    179179    sout_stream_sys_t    *p_sys; 
    180     libvlc_global_data_t *p_libvlc_global = p_this->p_libvlc_global; 
     180    vlc_object_t        *p_libvlc_global = p_this->p_libvlc_global; 
    181181    vlc_value_t           val; 
    182182 
     
    318318    if ( p_bridge == NULL ) 
    319319    { 
    320         libvlc_global_data_t *p_libvlc_global = p_stream->p_libvlc_global; 
     320        vlc_object_t *p_libvlc_global = p_stream->p_libvlc_global; 
    321321        vlc_value_t val; 
    322322 
     
    499499    if ( b_last_es ) 
    500500    { 
    501         libvlc_global_data_t *p_libvlc_global = p_stream->p_libvlc_global; 
     501        vlc_object_t *p_libvlc_global = p_stream->p_libvlc_global; 
    502502        for ( i = 0; i < p_bridge->i_es_num; i++ ) 
    503503            free( p_bridge->pp_es[i] ); 
  • modules/video_filter/mosaic.c

    r124454c r2e0409a  
    287287    filter_t *p_filter = (filter_t *)p_this; 
    288288    filter_sys_t *p_sys; 
    289     libvlc_global_data_t *p_libvlc_global = p_filter->p_libvlc_global; 
     289    vlc_object_t *p_libvlc_global = p_filter->p_libvlc_global; 
    290290    char *psz_order; 
    291291    char *psz_offsets; 
  • modules/video_filter/mosaic.h

    rf485214 r2e0409a  
    4141static bridge_t *__GetBridge( vlc_object_t *p_object ) 
    4242{ 
    43     libvlc_global_data_t *p_libvlc_global = p_object->p_libvlc_global; 
     43    vlc_object_t *p_libvlc_global = p_object->p_libvlc_global; 
    4444    bridge_t *p_bridge; 
    4545    vlc_value_t val; 
  • src/libvlc-common.c

    rb539091 r2e0409a  
    370370            b_exit = VLC_TRUE; 
    371371        } 
    372         p_libvlc->p_libvlc_global->b_daemon = VLC_TRUE; 
     372        libvlc_global.b_daemon = VLC_TRUE; 
    373373 
    374374        /* lets check if we need to write the pidfile */ 
     
    417417            close( STDERR_FILENO ); 
    418418 
    419             p_libvlc->p_libvlc_global->b_daemon = VLC_TRUE; 
     419            libvlc_global.b_daemon = VLC_TRUE; 
    420420        } 
    421421#endif 
     
    10401040    char* psz_pidfile = NULL; 
    10411041 
    1042     if( p_libvlc->p_libvlc_global->p_module_bank ) 
     1042    if( libvlc_global.p_module_bank ) 
    10431043    if( config_GetInt( p_libvlc, "daemon" ) ) 
    10441044    { 
     
    11181118 
    11191119#ifndef WIN32 
    1120     if( p_libvlc->p_libvlc_global->b_daemon && b_block && !psz_module ) 
     1120    if( libvlc_global.b_daemon && b_block && !psz_module ) 
    11211121    { 
    11221122        /* Daemon mode hack. 
  • src/libvlc.h

    reae01d1 r2e0409a  
    3535                   const char *psz_type); 
    3636 
    37 #if 0 
    3837/***************************************************************************** 
    3938 * libvlc_global_data_t (global variable) 
     
    7271#endif 
    7372}; 
    74 #endif 
    7573 
     74static inline libvlc_global_data_t *vlc_global( vlc_object_t *p_this ) 
     75{ 
     76    return (libvlc_global_data_t *)p_this->p_libvlc_global; 
     77} 
    7678 
    7779extern uint32_t cpu_flags; 
  • src/misc/objects.c

    r8fd6167 r2e0409a  
    140140    { 
    141141        /* If i_type is global, then p_new is actually p_libvlc_global */ 
    142         p_new->p_libvlc_global = (libvlc_global_data_t*)p_new; 
     142        libvlc_global_data_t *p_libvlc_global = (libvlc_global_data_t *)p_new; 
     143        p_new->p_libvlc_global = p_new; 
    143144        p_new->p_libvlc = NULL; 
    144145 
    145         p_new->p_libvlc_global->i_counter = 0; 
     146        p_libvlc_global->i_counter = 0; 
    146147        p_new->i_object_id = 0; 
    147148 
    148         p_new->p_libvlc_global->i_objects = 1; 
    149         p_new->p_libvlc_global->pp_objects = malloc( sizeof(vlc_object_t *) ); 
    150         p_new->p_libvlc_global->pp_objects[0] = p_new; 
     149        p_libvlc_global->i_objects = 1; 
     150        p_libvlc_global->pp_objects = malloc( sizeof(vlc_object_t *) ); 
     151        p_libvlc_global->pp_objects[0] = p_new; 
    151152        p_new->b_attached = VLC_TRUE; 
    152153    } 
    153154    else 
    154155    { 
    155         p_new->p_libvlc_global = p_this->p_libvlc_global; 
     156        libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
     157        p_new->p_libvlc_global = VLC_OBJECT (p_libvlc_global); 
    156158        p_new->p_libvlc = ( i_type == VLC_OBJECT_LIBVLC ) ? (libvlc_int_t*)p_new 
    157159                                                       : p_this->p_libvlc; 
     
    159161        vlc_mutex_lock( &structure_lock ); 
    160162 
    161         p_new->p_libvlc_global->i_counter++; 
    162         p_new->i_object_id = p_new->p_libvlc_global->i_counter; 
     163        p_libvlc_global->i_counter++; 
     164        p_new->i_object_id = p_libvlc_global->i_counter; 
    163165 
    164166        /* Wooohaa! If *this* fails, we're in serious trouble! Anyway it's 
    165167         * useless to try and recover anything if pp_objects gets smashed. */ 
    166         TAB_APPEND( p_new->p_libvlc_global->i_objects, 
    167                     p_new->p_libvlc_global->pp_objects, 
     168        TAB_APPEND( p_libvlc_global->i_objects, p_libvlc_global->pp_objects, 
    168169                    p_new ); 
    169170 
     
    396397    if( p_this->i_object_type == VLC_OBJECT_GLOBAL ) 
    397398    { 
     399        libvlc_global_data_t *p_global = (libvlc_global_data_t *)p_this; 
    398400        /* We are the global object ... no need to lock. */ 
    399         free( p_this->p_libvlc_global->pp_objects ); 
    400         p_this->p_libvlc_global->pp_objects = NULL; 
    401         p_this->p_libvlc_global->i_objects--; 
     401        free( p_global->pp_objects ); 
     402        p_global->pp_objects = NULL; 
     403        p_global->i_objects--; 
    402404 
    403405        vlc_mutex_destroy( &structure_lock ); 
     
    405407    else 
    406408    { 
     409        libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
    407410        int i_index; 
    408411 
     
    411414        /* Wooohaa! If *this* fails, we're in serious trouble! Anyway it's 
    412415         * useless to try and recover anything if pp_objects gets smashed. */ 
    413         i_index = FindIndex( p_this, p_this->p_libvlc_global->pp_objects, 
    414                              p_this->p_libvlc_global->i_objects ); 
    415         REMOVE_ELEM( p_this->p_libvlc_global->pp_objects, 
    416                      p_this->p_libvlc_global->i_objects, i_index ); 
     416        i_index = FindIndex( p_this, p_libvlc_global->pp_objects, 
     417                             p_libvlc_global->i_objects ); 
     418        REMOVE_ELEM( p_libvlc_global->pp_objects, 
     419                     p_libvlc_global->i_objects, i_index ); 
    417420 
    418421        vlc_mutex_unlock( &structure_lock ); 
     
    466469    int i_max, i_middle; 
    467470    vlc_object_t **pp_objects; 
     471    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
    468472 
    469473    vlc_mutex_lock( &structure_lock ); 
    470474 
    471     pp_objects = p_this->p_libvlc_global->pp_objects; 
     475    pp_objects = p_libvlc_global->pp_objects; 
    472476 
    473477    /* Perform our dichotomy */ 
    474     for( i_max = p_this->p_libvlc_global->i_objects - 1 ; ; ) 
     478    for( i_max = p_libvlc_global->i_objects - 1 ; ; ) 
    475479    { 
    476480        i_middle = i_max / 2; 
     
    714718    vlc_object_t **pp_current, **pp_end; 
    715719    int i_count = 0, i_index = 0; 
     720    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
    716721 
    717722    vlc_mutex_lock( &structure_lock ); 
     
    721726    { 
    722727    case FIND_ANYWHERE: 
    723         pp_current = p_this->p_libvlc_global->pp_objects; 
    724         pp_end = pp_current + p_this->p_libvlc_global->i_objects; 
     728        pp_current = p_libvlc_global->pp_objects; 
     729        pp_end = pp_current + p_libvlc_global->i_objects; 
    725730 
    726731        for( ; pp_current < pp_end ; pp_current++ ) 
     
    734739 
    735740        p_list = NewList( i_count ); 
    736         pp_current = p_this->p_libvlc_global->pp_objects; 
     741        pp_current = p_libvlc_global->pp_objects; 
    737742 
    738743        for( ; pp_current < pp_end ; pp_current++ ) 
     
    784789                        vlc_value_t oldval, vlc_value_t newval, void *p_data ) 
    785790{ 
     791    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
     792 
    786793    (void)oldval; (void)p_data; 
    787794    if( *psz_cmd == 'l' ) 
     
    791798        vlc_object_t **pp_current, **pp_end; 
    792799 
    793         pp_current = p_this->p_libvlc_global->pp_objects; 
    794         pp_end = pp_current + p_this->p_libvlc_global->i_objects; 
     800        pp_current = p_libvlc_global->pp_objects; 
     801        pp_end = pp_current + p_libvlc_global->i_objects; 
    795802 
    796803        for( ; pp_current < pp_end ; pp_current++ ) 
  • src/modules/modules.c

    r85faf5c r2e0409a  
    156156static void module_LoadMain( vlc_object_t *p_this ); 
    157157 
    158  
    159158/* Sub-version number 
    160159 * (only used to avoid breakage in dev version when cache structure changes) */ 
     
    171170    module_bank_t *p_bank = NULL; 
    172171    vlc_value_t  lockval; 
    173  
    174     var_Create( p_this->p_libvlc_global, "libvlc", VLC_VAR_MUTEX ); 
    175     var_Get( p_this->p_libvlc_global, "libvlc", &lockval ); 
     172    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
     173 
     174    var_Create( p_libvlc_global, "libvlc", VLC_VAR_MUTEX ); 
     175    var_Get( p_libvlc_global, "libvlc", &lockval ); 
    176176    vlc_mutex_lock( lockval.p_address ); 
    177     if( p_this->p_libvlc_global->p_module_bank ) 
    178     { 
    179         p_this->p_libvlc_global->p_module_bank->i_usage++; 
     177    if( p_libvlc_global->p_module_bank ) 
     178    { 
     179        p_libvlc_global->p_module_bank->i_usage++; 
    180180        vlc_mutex_unlock( lockval.p_address ); 
    181         var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
     181        var_Destroy( p_libvlc_global, "libvlc" ); 
    182182        return; 
    183183    } 
    184184    vlc_mutex_unlock( lockval.p_address ); 
    185     var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
     185    var_Destroy( p_libvlc_global, "libvlc" ); 
    186186 
    187187    p_bank = vlc_object_create( p_this, sizeof(module_bank_t) ); 
     
    203203 
    204204    /* Everything worked, attach the object */ 
    205     p_this->p_libvlc_global->p_module_bank = p_bank; 
    206     vlc_object_attach( p_bank, p_this->p_libvlc_global ); 
     205    p_libvlc_global->p_module_bank = p_bank; 
     206    vlc_object_attach( p_bank, p_libvlc_global ); 
    207207 
    208208    module_LoadMain( p_this ); 
    209209} 
    210210 
    211 /***************************************************************************** 
    212  * module_ResetBank: reset the module bank. 
    213  ***************************************************************************** 
    214  * This function resets the module bank by unloading all unused plugin 
    215  * modules. 
    216  *****************************************************************************/ 
    217 void __module_ResetBank( vlc_object_t *p_this ) 
    218 { 
    219     msg_Err( p_this, "FIXME: module_ResetBank unimplemented" ); 
    220     return; 
    221 } 
    222211 
    223212/***************************************************************************** 
     
    231220    module_t * p_next = NULL; 
    232221    vlc_value_t lockval; 
    233  
    234     var_Create( p_this->p_libvlc_global, "libvlc", VLC_VAR_MUTEX ); 
    235     var_Get( p_this->p_libvlc_global, "libvlc", &lockval ); 
     222    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
     223 
     224    var_Create( p_libvlc_global, "libvlc", VLC_VAR_MUTEX ); 
     225    var_Get( p_libvlc_global, "libvlc", &lockval ); 
    236226    vlc_mutex_lock( lockval.p_address ); 
    237     if( !p_this->p_libvlc_global->p_module_bank ) 
     227    if( !p_libvlc_global->p_module_bank ) 
    238228    { 
    239229        vlc_mutex_unlock( lockval.p_address ); 
    240         var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
    241         return; 
    242     } 
    243     if( --p_this->p_libvlc_global->p_module_bank->i_usage ) 
     230        var_Destroy( p_libvlc_global, "libvlc" ); 
     231        return; 
     232    } 
     233    if( --p_libvlc_global->p_module_bank->i_usage ) 
    244234    { 
    245235        vlc_mutex_unlock( lockval.p_address ); 
    246         var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
     236        var_Destroy( p_libvlc_global, "libvlc" ); 
    247237        return; 
    248238    } 
    249239    vlc_mutex_unlock( lockval.p_address ); 
    250     var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
     240    var_Destroy( p_libvlc_global, "libvlc" ); 
    251241 
    252242    config_AutoSaveConfigFile( p_this ); 
    253243 
    254244#ifdef HAVE_DYNAMIC_PLUGINS 
    255 #define p_bank p_this->p_libvlc_global->p_module_bank 
     245# define p_bank p_libvlc_global->p_module_bank 
    256246    if( p_bank->b_cache ) CacheSave( p_this ); 
    257247    while( p_bank->i_loaded_cache-- ) 
     
    259249        if( p_bank->pp_loaded_cache[p_bank->i_loaded_cache] ) 
    260250        { 
    261             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 ); 
     251            DeleteModule( p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->p_module, 
     252                          p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->b_used ); 
    262253            free( p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->psz_file ); 
    263254            free( p_bank->pp_loaded_cache[p_bank->i_loaded_cache] ); 
     
    281272        p_bank->pp_cache = NULL; 
    282273    } 
    283 #undef p_bank 
    284 #endif 
    285  
    286     vlc_object_detach( p_this->p_libvlc_global->p_module_bank ); 
    287  
    288     while( p_this->p_libvlc_global->p_module_bank->i_children ) 
    289     { 
    290         p_next = (module_t *)p_this->p_libvlc_global->p_module_bank->pp_children[0]; 
     274# undef p_bank 
     275#endif 
     276 
     277    vlc_object_detach( p_libvlc_global->p_module_bank ); 
     278 
     279    while( p_libvlc_global->p_module_bank->i_children ) 
     280    { 
     281        p_next = (module_t *)p_libvlc_global->p_module_bank->pp_children[0]; 
    291282 
    292283        if( DeleteModule( p_next, VLC_TRUE ) ) 
     
    302293    } 
    303294 
    304     vlc_object_destroy( p_this->p_libvlc_global->p_module_bank ); 
    305     p_this->p_libvlc_global->p_module_bank = NULL; 
    306  
    307     return; 
     295    vlc_object_destroy( p_libvlc_global->p_module_bank ); 
     296    p_libvlc_global->p_module_bank = NULL; 
    308297} 
    309298 
     
    319308{ 
    320309    vlc_value_t lockval; 
    321  
    322     var_Create( p_this->p_libvlc_global, "libvlc", VLC_VAR_MUTEX ); 
    323     var_Get( p_this->p_libvlc_global, "libvlc", &lockval ); 
     310    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
     311 
     312    var_Create( p_libvlc_global, "libvlc", VLC_VAR_MUTEX ); 
     313    var_Get( p_libvlc_global, "libvlc", &lockval ); 
    324314    vlc_mutex_lock( lockval.p_address ); 
    325     if( p_this->p_libvlc_global->p_module_bank->b_main ) 
     315    if( p_libvlc_global->p_module_bank->b_main ) 
    326316    { 
    327317        vlc_mutex_unlock( lockval.p_address ); 
    328         var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
    329         return; 
    330     } 
    331     p_this->p_libvlc_global->p_module_bank->b_main = VLC_TRUE; 
     318        var_Destroy( p_libvlc_global, "libvlc" ); 
     319        return; 
     320    } 
     321    p_libvlc_global->p_module_bank->b_main = VLC_TRUE; 
    332322    vlc_mutex_unlock( lockval.p_address ); 
    333     var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
     323    var_Destroy( p_libvlc_global, "libvlc" ); 
    334324 
    335325    AllocateBuiltinModule( p_this, vlc_entry__main ); 
     
    344334{ 
    345335    vlc_value_t lockval; 
    346  
    347     var_Create( p_this->p_libvlc_global, "libvlc", VLC_VAR_MUTEX ); 
    348     var_Get( p_this->p_libvlc_global, "libvlc", &lockval ); 
     336    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
     337 
     338    var_Create( p_libvlc_global, "libvlc", VLC_VAR_MUTEX ); 
     339    var_Get( p_libvlc_global, "libvlc", &lockval ); 
    349340    vlc_mutex_lock( lockval.p_address ); 
    350     if( p_this->p_libvlc_global->p_module_bank->b_builtins ) 
     341    if( p_libvlc_global->p_module_bank->b_builtins ) 
    351342    { 
    352343        vlc_mutex_unlock( lockval.p_address ); 
    353         var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
    354         return; 
    355     } 
    356     p_this->p_libvlc_global->p_module_bank->b_builtins = VLC_TRUE; 
     344        var_Destroy( p_libvlc_global, "libvlc" ); 
     345        return; 
     346    } 
     347    p_libvlc_global->p_module_bank->b_builtins = VLC_TRUE; 
    357348    vlc_mutex_unlock( lockval.p_address ); 
    358     var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
     349    var_Destroy( p_libvlc_global, "libvlc" ); 
    359350 
    360351    msg_Dbg( p_this, "checking builtin modules" ); 
     
    371362#ifdef HAVE_DYNAMIC_PLUGINS 
    372363    vlc_value_t lockval; 
    373  
    374     var_Create( p_this->p_libvlc_global, "libvlc", VLC_VAR_MUTEX ); 
    375     var_Get( p_this->p_libvlc_global, "libvlc", &lockval ); 
     364    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
     365 
     366    var_Create( p_libvlc_global, "libvlc", VLC_VAR_MUTEX ); 
     367    var_Get( p_libvlc_global, "libvlc", &lockval ); 
    376368    vlc_mutex_lock( lockval.p_address ); 
    377     if( p_this->p_libvlc_global->p_module_bank->b_plugins ) 
     369    if( p_libvlc_global->p_module_bank->b_plugins ) 
    378370    { 
    379371        vlc_mutex_unlock( lockval.p_address ); 
    380         var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
    381         return; 
    382     } 
    383     p_this->p_libvlc_global->p_module_bank->b_plugins = VLC_TRUE; 
     372        var_Destroy( p_libvlc_global, "libvlc" ); 
     373        return; 
     374    } 
     375    p_libvlc_global->p_module_bank->b_plugins = VLC_TRUE; 
    384376    vlc_mutex_unlock( lockval.p_address ); 
    385     var_Destroy( p_this->p_libvlc_global, "libvlc" ); 
     377    var_Destroy( p_libvlc_global, "libvlc" ); 
    386378 
    387379    msg_Dbg( p_this, "checking plugin modules" ); 
    388380 
    389381    if( config_GetInt( p_this, "plugins-cache" ) ) 
    390         p_this->p_libvlc_global->p_module_bank->b_cache = VLC_TRUE; 
    391  
    392     if( p_this->p_libvlc_global->p_module_bank->b_cache || 
    393         p_this->p_libvlc_global->p_module_bank->b_cache_delete ) CacheLoad( p_this ); 
     382        p_libvlc_global->p_module_bank->b_cache = VLC_TRUE; 
     383 
     384    if( p_libvlc_global->p_module_bank->b_cache || 
     385        p_libvlc_global->p_module_bank->b_cache_delete ) CacheLoad( p_this ); 
    394386 
    395387    AllocateAllPlugins( p_this ); 
     
    10741066    if( p_module ) 
    10751067    { 
     1068        libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
     1069 
    10761070        /* Everything worked fine ! 
    10771071         * The module is ready to be added to the list. */ 
     
    10811075                    p_module->psz_object_name, p_module->psz_longname ); */ 
    10821076 
    1083         vlc_object_attach( p_module, p_this->p_libvlc_global->p_module_bank ); 
    1084  
    1085         if( !p_this->p_libvlc_global->p_module_bank->b_cache ) 
     1077        vlc_object_attach( p_module, p_libvlc_global->p_module_bank ); 
     1078 
     1079        if( !p_libvlc_global->p_module_bank->b_cache ) 
    10861080            return 0; 
    10871081 
     1082#define p_bank p_libvlc_global->p_module_bank 
    10881083        /* Add entry to cache */ 
    1089 #define p_bank p_this->p_libvlc_global->p_module_bank 
    10901084        p_bank->pp_cache = 
    10911085            realloc( p_bank->pp_cache, (p_bank->i_cache + 1) * sizeof(void *) ); 
     
    12571251                p_module->psz_object_name, p_module->psz_longname ); */ 
    12581252 
    1259     vlc_object_attach( p_module, p_this->p_libvlc_global->p_module_bank ); 
     1253    vlc_object_attach( p_module, vlc_global( p_this )->p_module_bank ); 
    12601254 
    12611255    return 0; 
     
    16331627    module_cache_t **pp_cache = 0; 
    16341628    int32_t i_file_size, i_marker; 
     1629    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
    16351630 
    16361631    psz_homedir = p_this->p_libvlc->psz_homedir; 
     
    16491644    } 
    16501645 
    1651     if( p_this->p_libvlc_global->p_module_bank->b_cache_delete ) 
     1646    if( p_libvlc_global->p_module_bank->b_cache_delete ) 
    16521647    { 
    16531648#if !defined( UNDER_CE ) 
     
    17381733    } 
    17391734 
    1740     p_this->p_libvlc_global->p_module_bank->i_loaded_cache = 0; 
     1735    p_libvlc_global->p_module_bank->i_loaded_cache = 0; 
    17411736    if (fread( &i_cache, 1, sizeof(i_cache), file ) != sizeof(i_cache) ) 
    17421737    { 
     
    17481743 
    17491744    if( i_cache ) 
    1750         pp_cache = p_this->p_libvlc_global->p_module_bank->pp_loaded_cache = 
     1745        pp_cache = p_libvlc_global->p_module_bank->pp_loaded_cache = 
    17511746                   malloc( i_cache * sizeof(void *) ); 
    17521747 
     
    17791774 
    17801775        pp_cache[i] = malloc( sizeof(module_cache_t) ); 
    1781         p_this->p_libvlc_global->p_module_bank->i_loaded_cache++; 
     1776        p_libvlc_global->p_module_bank->i_loaded_cache++; 
    17821777 
    17831778        /* Load common info */ 
     
    18451840 
    18461841    /* TODO: cleanup */ 
    1847     p_this->p_libvlc_global->p_module_bank->i_loaded_cache = 0; 
     1842    p_libvlc_global->p_module_bank->i_loaded_cache = 0; 
    18481843 
    18491844    fclose( file ); 
     
    19861981    module_cache_t **pp_cache; 
    19871982    int32_t i_file_size = 0; 
     1983    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
    19881984 
    19891985    psz_homedir = p_this->p_libvlc->psz_homedir; 
     
    20532049    fwrite( &i_file_size, sizeof(char), sizeof(i_file_size), file ); 
    20542050 
    2055     i_cache = p_this->p_libvlc_global->p_module_bank->i_cache; 
    2056     pp_cache = p_this->p_libvlc_global->p_module_bank->pp_cache; 
     2051    i_cache = p_libvlc_global->p_module_bank->i_cache; 
     2052    pp_cache = p_libvlc_global->p_module_bank->pp_cache; 
    20572053 
    20582054    fwrite( &i_cache, sizeof(char), sizeof(i_cache), file ); 
     
    22382234    module_cache_t **pp_cache; 
    22392235    int i_cache, i; 
    2240  
    2241     pp_cache = p_this->p_libvlc_global->p_module_bank->pp_loaded_cache; 
    2242     i_cache = p_this->p_libvlc_global->p_module_bank->i_loaded_cache; 
     2236    libvlc_global_data_t *p_libvlc_global = vlc_global( p_this ); 
     2237 
     2238    pp_cache = p_libvlc_global->p_module_bank->pp_loaded_cache; 
     2239    i_cache = p_libvlc_global->p_module_bank->i_loaded_cache; 
    22432240 
    22442241    for( i = 0; i < i_cache; i++ )