vlc | branch: master | Rémi Duraffort <[email protected]> | Sat Dec 4 15:18:27 2010 +0100| [11a89704974b204d6009b2b4bf143c6f0713aa55] | committer: Rémi Duraffort
lua_variables: luaL_optstring returned pointer is valid as long as the value stay on the lua stack (also avoid an strdup). > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=11a89704974b204d6009b2b4bf143c6f0713aa55 --- modules/misc/lua/libs/variables.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/misc/lua/libs/variables.c b/modules/misc/lua/libs/variables.c index 28109c9..ec718b3 100644 --- a/modules/misc/lua/libs/variables.c +++ b/modules/misc/lua/libs/variables.c @@ -248,19 +248,19 @@ static int vlclua_libvlc_command( lua_State *L ) vlc_value_t val_arg; const char *psz_cmd = luaL_checkstring( L, 1 ); - val_arg.psz_string = strdup( luaL_optstring( L, 2, "" ) ); - lua_pop( L, 2 ); + val_arg.psz_string = (char*)luaL_optstring( L, 2, "" ); int i_type = var_Type( p_this->p_libvlc, psz_cmd ); if( ! (i_type & VLC_VAR_ISCOMMAND) ) { - free( val_arg.psz_string ); return luaL_error( L, "libvlc's \"%s\" is not a command", psz_cmd ); } - return vlclua_push_ret( L, - var_Set( p_this->p_libvlc, psz_cmd, val_arg ) ); + int i_ret = var_Set( p_this->p_libvlc, psz_cmd, val_arg ); + lua_pop( L, 2 ); + + return vlclua_push_ret( L, i_ret ); } int __vlclua_var_toggle_or_set( lua_State *L, vlc_object_t *p_obj, _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
