mirror of https://github.com/mgba-emu/mgba.git
Scripting: Fix unsetting globals in Lua
This commit is contained in:
parent
8326ecddce
commit
cdfa6ac54b
|
@ -142,7 +142,9 @@ struct mScriptValue* _luaGetGlobal(struct mScriptEngineContext* ctx, const char*
|
||||||
|
|
||||||
bool _luaSetGlobal(struct mScriptEngineContext* ctx, const char* name, struct mScriptValue* value) {
|
bool _luaSetGlobal(struct mScriptEngineContext* ctx, const char* name, struct mScriptValue* value) {
|
||||||
struct mScriptEngineContextLua* luaContext = (struct mScriptEngineContextLua*) ctx;
|
struct mScriptEngineContextLua* luaContext = (struct mScriptEngineContextLua*) ctx;
|
||||||
if (!_luaWrap(luaContext, value)) {
|
if (!value) {
|
||||||
|
lua_pushnil(luaContext->lua);
|
||||||
|
} else if (!_luaWrap(luaContext, value)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
lua_setglobal(luaContext->lua, name);
|
lua_setglobal(luaContext->lua, name);
|
||||||
|
|
|
@ -243,6 +243,10 @@ M_TEST_DEFINE(setGlobal) {
|
||||||
assert_true(a.type->equal(&a, val));
|
assert_true(a.type->equal(&a, val));
|
||||||
mScriptValueDeref(val);
|
mScriptValueDeref(val);
|
||||||
|
|
||||||
|
assert_true(lua->setGlobal(lua, "b", NULL));
|
||||||
|
val = lua->getGlobal(lua, "b");
|
||||||
|
assert_null(val);
|
||||||
|
|
||||||
mScriptContextDeinit(&context);
|
mScriptContextDeinit(&context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue