if( !p_ext->p_sys->L )
return VLC_SUCCESS;
+ vlclua_fd_interrupt( &p_ext->p_sys->dtable );
+
// Unset and release input objects
if( p_ext->p_sys->p_input )
{
int i_ret = lua_ExecuteFunction( p_mgr, p_ext, "deactivate", LUA_END );
/* Clear Lua State */
+ vlclua_fd_cleanup( &p_ext->p_sys->dtable );
lua_close( p_ext->p_sys->L );
p_ext->p_sys->L = NULL;
luaopen_dialog( L, p_ext );
luaopen_input( L );
luaopen_msg( L );
- luaopen_net_generic( L );
+ if( vlclua_fd_init( L, &p_ext->p_sys->dtable ) )
+ {
+ lua_close( L );
+ return NULL;
+ }
luaopen_object( L );
luaopen_osd( L );
luaopen_playlist( L );
{
msg_Warn( p_mgr, "Error while setting the module "
"search path for %s", p_ext->psz_name );
+ vlclua_fd_cleanup( &p_ext->p_sys->dtable );
lua_close( L );
return NULL;
}
{
msg_Warn( p_mgr, "Error loading script %s: %s", p_ext->psz_name,
lua_tostring( L, lua_gettop( L ) ) );
+ vlclua_fd_cleanup( &p_ext->p_sys->dtable );
lua_close( L );
return NULL;
}
/* Close lua state for trigger-only extensions */
if( p_ext->p_sys->L )
+ {
+ vlclua_fd_cleanup( &p_ext->p_sys->dtable );
lua_close( p_ext->p_sys->L );
+ }
p_ext->p_sys->L = NULL;
return i_ret;
Net
---
----------------------------------------------------------------
-/!\ NB: this namespace is ONLY usable for interfaces.
+/!\ NB: this namespace is ONLY usable for interfaces and extensions.
---
----------------------------------------------------------------
net.url_parse( url, [option delimiter] ): Parse URL. Returns a table with