[vlc-commits] lua: fix lua{intf=<intf>} syntax

Pierre Ynard git at videolan.org
Sun Dec 4 03:14:06 CET 2011


vlc/vlc-1.2 | branch: master | Pierre Ynard <linkfanel at yahoo.fr> | Sun Dec  4 03:07:08 2011 +0100| [3cb0b33f3ce81f31e0e46a23b727d6822589df8c] | committer: Pierre Ynard

lua: fix lua{intf=<intf>} syntax
(cherry picked from commit bdba9b6826e70eed4328004927dbfddb1c3be6b9)

Signed-off-by: Pierre Ynard <linkfanel at yahoo.fr>

> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.2.git/?a=commit;h=3cb0b33f3ce81f31e0e46a23b727d6822589df8c
---

 modules/lua/intf.c |   32 ++++++++++++++++++--------------
 1 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/modules/lua/intf.c b/modules/lua/intf.c
index 67675d2..0e1bd39 100644
--- a/modules/lua/intf.c
+++ b/modules/lua/intf.c
@@ -36,7 +36,6 @@
 #include <vlc_interface.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <assert.h>
 
 #include <lua.h>        /* Low level lua C API */
 #include <lauxlib.h>    /* Higher level C API */
@@ -123,15 +122,29 @@ static int Start_LuaIntf( vlc_object_t *p_this, const char *name )
     intf_sys_t *p_sys;
     lua_State *L;
 
-    assert( name != NULL );
     config_ChainParse( p_intf, "lua-", ppsz_intf_options, p_intf->p_cfg );
 
     char *psz_config;
     bool b_config_set = false;
 
+    if( name == NULL )
+    {
+        char *n = var_InheritString( p_this, "lua-intf" );
+        if( unlikely(n == NULL) )
+            return VLC_EGENERIC;
+        name = p_intf->psz_header = n;
+    }
+    else
+        /* Cleaned up by vlc_object_release() */
+        p_intf->psz_header = strdup( name );
+
     p_intf->p_sys = (intf_sys_t*)malloc( sizeof(intf_sys_t) );
     if( !p_intf->p_sys )
+    {
+        free( p_intf->psz_header );
+        p_intf->psz_header = NULL;
         return VLC_ENOMEM;
+    }
     p_sys = p_intf->p_sys;
     p_sys->psz_filename = vlclua_find_file( p_this, "intf", name );
     if( !p_sys->psz_filename )
@@ -350,17 +363,12 @@ static int Start_LuaIntf( vlc_object_t *p_this, const char *name )
 
     p_sys->L = L;
 
-    /* Cleaned up by vlc_object_release() */
-    p_intf->psz_header = strdup( name );
-
     vlc_mutex_init( &p_sys->lock );
     vlc_cond_init( &p_sys->wait );
     p_sys->exiting = false;
 
     if( vlc_clone( &p_sys->thread, Run, p_intf, VLC_THREAD_PRIORITY_LOW ) )
     {
-        free( p_intf->psz_header );
-        p_intf->psz_header = NULL;
         vlc_cond_destroy( &p_sys->wait );
         vlc_mutex_destroy( &p_sys->lock );
         lua_close( p_sys->L );
@@ -371,6 +379,8 @@ static int Start_LuaIntf( vlc_object_t *p_this, const char *name )
 error:
     free( p_sys->psz_filename );
     free( p_sys );
+    free( p_intf->psz_header );
+    p_intf->psz_header = NULL;
     return VLC_EGENERIC;
 }
 
@@ -412,13 +422,7 @@ static void *Run( void *data )
 
 int Open_LuaIntf( vlc_object_t *p_this )
 {
-    char *name = var_InheritString( p_this, "lua-intf" );
-    if( unlikely(name == NULL) )
-        return VLC_EGENERIC;
-
-    int ret = Start_LuaIntf( p_this, name );
-    free( name );
-    return ret;
+    return Start_LuaIntf( p_this, NULL );
 }
 
 int Open_LuaHTTP( vlc_object_t *p_this )



More information about the vlc-commits mailing list