]> git.sesse.net Git - vlc/commitdiff
Add a psz_intf member to intf_thread_t. This holds the string given to module_Need...
authorAntoine Cellerier <dionoea@videolan.org>
Sun, 4 Nov 2007 21:05:00 +0000 (21:05 +0000)
committerAntoine Cellerier <dionoea@videolan.org>
Sun, 4 Nov 2007 21:05:00 +0000 (21:05 +0000)
include/vlc_interface.h
src/interface/interface.c

index 12194c5091ab63bd3c1950ccc9e0bbacf318202b..3e6a033dd10d6bb29a95813913b77ba8472dbe45 100644 (file)
@@ -60,6 +60,7 @@ struct intf_thread_t
     /* Specific interfaces */
     intf_console_t *    p_console;                               /** console */
     intf_sys_t *        p_sys;                          /** system interface */
+    char *              psz_intf;                    /** intf name specified */
 
     /** Interface module */
     module_t *   p_module;
index fb157e4a2112ce5ce745ee925fcbf0ce177b312d..650c61f3613e7432a078846adc9ef66aedb513a7 100644 (file)
@@ -93,11 +93,13 @@ intf_thread_t* __intf_Create( vlc_object_t *p_this, const char *psz_module,
     }
 
     /* Choose the best module */
+    p_intf->psz_intf = strdup( psz_module );
     p_intf->p_module = module_Need( p_intf, "interface", psz_module, VLC_FALSE );
 
     if( p_intf->p_module == NULL )
     {
         msg_Err( p_intf, "no suitable interface module" );
+        free( p_intf->psz_intf );
         vlc_object_destroy( p_intf );
         return NULL;
     }
@@ -183,6 +185,7 @@ void intf_Destroy( intf_thread_t *p_intf )
     {
         module_Unneed( p_intf, p_intf->p_module );
     }
+    free( p_intf->psz_intf );
 
     vlc_mutex_destroy( &p_intf->change_lock );
 
@@ -290,8 +293,8 @@ static void RunInterface( intf_thread_t *p_intf )
 
         vlc_mutex_unlock( &p_intf->object_lock );
 
+        p_intf->psz_intf = psz_intf;
         p_intf->p_module = module_Need( p_intf, "interface", psz_intf, 0 );
-        free( psz_intf );
     }
     while( p_intf->p_module );
 }