Use master state for trampolines

Fixes memory corruption if any Lua function creates a trampoline
This commit is contained in:
Ilari Liusvaara 2015-05-25 22:31:51 +03:00
parent 478472e883
commit 6a2d7f9aa2

View file

@ -337,7 +337,7 @@ void* state::builtin_alloc(void* user, void* old, size_t olds, size_t news)
void state::push_trampoline(int(*fn)(state& L), unsigned n_upvals)
{
lua_pushlightuserdata(lua_handle, (void*)this);
lua_pushlightuserdata(lua_handle, (void*)&get_master());
lua_pushlightuserdata(lua_handle, (void*)fn);
if(n_upvals > 0) {
lua_insert(lua_handle, -(int)n_upvals - 2);