]> git.sesse.net Git - vlc/commitdiff
lirc: we don't need to keep the name of the file in memory.
authorRémi Duraffort <ivoire@videolan.org>
Thu, 15 Oct 2009 12:18:00 +0000 (14:18 +0200)
committerRémi Duraffort <ivoire@videolan.org>
Thu, 15 Oct 2009 13:00:44 +0000 (15:00 +0200)
modules/control/lirc.c

index 8b3325768ce4dab32bc3baede2949c9e4939c461..d57a6c318bc66a8270426528ac75e7f04499b8ed 100644 (file)
@@ -70,7 +70,6 @@ vlc_module_end ()
  *****************************************************************************/
 struct intf_sys_t
 {
-    char *psz_file;
     struct lirc_config *config;
 
     int i_fd;
@@ -90,6 +89,7 @@ static int Open( vlc_object_t *p_this )
 {
     intf_thread_t *p_intf = (intf_thread_t *)p_this;
     intf_sys_t *p_sys;
+    char *psz_file;
 
     /* Allocate instance and initialize some members */
     p_intf->p_sys = p_sys = malloc( sizeof( intf_sys_t ) );
@@ -98,7 +98,6 @@ static int Open( vlc_object_t *p_this )
 
     p_intf->pf_run = Run;
 
-    p_sys->psz_file = var_CreateGetNonEmptyString( p_intf, "lirc-file" );
     p_sys->i_fd = lirc_init( "vlc", 1 );
     if( p_sys->i_fd == -1 )
     {
@@ -109,19 +108,21 @@ static int Open( vlc_object_t *p_this )
     /* We want polling */
     fcntl( p_sys->i_fd, F_SETFL, fcntl( p_sys->i_fd, F_GETFL ) | O_NONBLOCK );
 
-    /* */
-    if( lirc_readconfig( p_sys->psz_file, &p_sys->config, NULL ) != 0 )
+    /* Read the configuration file */
+    psz_file = var_CreateGetNonEmptyString( p_intf, "lirc-file" );
+    if( lirc_readconfig( psz_file, &p_sys->config, NULL ) != 0 )
     {
         msg_Err( p_intf, "failure while reading lirc config" );
+        free( psz_file );
         goto exit;
     }
+    free( psz_file );
 
     return VLC_SUCCESS;
 
 exit:
     if( p_sys->i_fd != -1 )
         lirc_deinit();
-    free( p_sys->psz_file );
     free( p_sys );
     return VLC_EGENERIC;
 }
@@ -137,7 +138,6 @@ static void Close( vlc_object_t *p_this )
     /* Destroy structure */
     lirc_freeconfig( p_sys->config );
     lirc_deinit();
-    free( p_sys->psz_file );
     free( p_sys );
 }