Skip to content
Snippets Groups Projects
Commit 72098736 authored by Yukita Mayako's avatar Yukita Mayako
Browse files

Prevent cvar naming conflicts from pointing Lua to the wrong internal data.

parent 55e0e71d
No related branches found
No related tags found
1 merge request!252OpenGL: Public flatsprite: The Fixening
......@@ -391,12 +391,21 @@ static int lib_cvRegisterVar(lua_State *L)
// stack: cvar table, cvar userdata
lua_getfield(L, LUA_REGISTRYINDEX, "CV_Vars");
I_Assert(lua_istable(L, 3));
lua_getfield(L, 3, cvar->name);
if (lua_type(L, -1) != LUA_TNIL)
return luaL_error(L, M_GetText("Variable %s is already defined\n"), cvar->name);
lua_pop(L, 1);
lua_pushvalue(L, 2);
lua_setfield(L, 3, cvar->name);
lua_pop(L, 1);
// actually time to register it to the console now! Finally!
cvar->flags |= CV_MODIFIED;
CV_RegisterVar(cvar);
if (cvar->flags & CV_MODIFIED)
return luaL_error(L, "failed to register cvar (probable conflict with internal variable/command names)");
// return cvar userdata
return 1;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment