deps/obs-scripting: Fix lua tick crash
This commit is contained in:
parent
6af9ae6c87
commit
a0e666d8e3
33
deps/obs-scripting/obs-scripting-lua.c
vendored
33
deps/obs-scripting/obs-scripting-lua.c
vendored
@ -154,22 +154,6 @@ static bool load_lua_script(struct obs_lua_script *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lua_getglobal(script, "script_tick");
|
|
||||||
if (lua_isfunction(script, -1)) {
|
|
||||||
pthread_mutex_lock(&tick_mutex);
|
|
||||||
|
|
||||||
struct obs_lua_script *next = first_tick_script;
|
|
||||||
data->next_tick = next;
|
|
||||||
data->p_prev_next_tick = &first_tick_script;
|
|
||||||
if (next)
|
|
||||||
next->p_prev_next_tick = &data->next_tick;
|
|
||||||
first_tick_script = data;
|
|
||||||
|
|
||||||
data->tick = luaL_ref(script, LUA_REGISTRYINDEX);
|
|
||||||
|
|
||||||
pthread_mutex_unlock(&tick_mutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
lua_getglobal(script, "script_properties");
|
lua_getglobal(script, "script_properties");
|
||||||
if (lua_isfunction(script, -1))
|
if (lua_isfunction(script, -1))
|
||||||
data->get_properties = luaL_ref(script, LUA_REGISTRYINDEX);
|
data->get_properties = luaL_ref(script, LUA_REGISTRYINDEX);
|
||||||
@ -224,6 +208,23 @@ static bool load_lua_script(struct obs_lua_script *data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
data->script = script;
|
data->script = script;
|
||||||
|
|
||||||
|
lua_getglobal(script, "script_tick");
|
||||||
|
if (lua_isfunction(script, -1)) {
|
||||||
|
pthread_mutex_lock(&tick_mutex);
|
||||||
|
|
||||||
|
struct obs_lua_script *next = first_tick_script;
|
||||||
|
data->next_tick = next;
|
||||||
|
data->p_prev_next_tick = &first_tick_script;
|
||||||
|
if (next)
|
||||||
|
next->p_prev_next_tick = &data->next_tick;
|
||||||
|
first_tick_script = data;
|
||||||
|
|
||||||
|
data->tick = luaL_ref(script, LUA_REGISTRYINDEX);
|
||||||
|
|
||||||
|
pthread_mutex_unlock(&tick_mutex);
|
||||||
|
}
|
||||||
|
|
||||||
success = true;
|
success = true;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user