Check argument types inside MetaDataRef Lua API (#7045)

This commit is contained in:
sfan5 2018-02-18 10:40:45 +01:00 committed by SmallJoker
parent 2a4fbbbff8
commit 858c41b842
2 changed files with 7 additions and 7 deletions

@ -95,7 +95,7 @@ int MetaDataRef::l_get_int(lua_State *L)
MAP_LOCK_REQUIRED; MAP_LOCK_REQUIRED;
MetaDataRef *ref = checkobject(L, 1); MetaDataRef *ref = checkobject(L, 1);
std::string name = lua_tostring(L, 2); std::string name = luaL_checkstring(L, 2);
Metadata *meta = ref->getmeta(false); Metadata *meta = ref->getmeta(false);
if (meta == NULL) { if (meta == NULL) {
@ -114,8 +114,8 @@ int MetaDataRef::l_set_int(lua_State *L)
MAP_LOCK_REQUIRED; MAP_LOCK_REQUIRED;
MetaDataRef *ref = checkobject(L, 1); MetaDataRef *ref = checkobject(L, 1);
std::string name = lua_tostring(L, 2); std::string name = luaL_checkstring(L, 2);
int a = lua_tointeger(L, 3); int a = luaL_checkint(L, 3);
std::string str = itos(a); std::string str = itos(a);
Metadata *meta = ref->getmeta(true); Metadata *meta = ref->getmeta(true);
@ -133,7 +133,7 @@ int MetaDataRef::l_get_float(lua_State *L)
MAP_LOCK_REQUIRED; MAP_LOCK_REQUIRED;
MetaDataRef *ref = checkobject(L, 1); MetaDataRef *ref = checkobject(L, 1);
std::string name = lua_tostring(L, 2); std::string name = luaL_checkstring(L, 2);
Metadata *meta = ref->getmeta(false); Metadata *meta = ref->getmeta(false);
if (meta == NULL) { if (meta == NULL) {
@ -152,8 +152,8 @@ int MetaDataRef::l_set_float(lua_State *L)
MAP_LOCK_REQUIRED; MAP_LOCK_REQUIRED;
MetaDataRef *ref = checkobject(L, 1); MetaDataRef *ref = checkobject(L, 1);
std::string name = lua_tostring(L, 2); std::string name = luaL_checkstring(L, 2);
float a = lua_tonumber(L, 3); float a = luaL_checknumber(L, 3);
std::string str = ftos(a); std::string str = ftos(a);
Metadata *meta = ref->getmeta(true); Metadata *meta = ref->getmeta(true);

@ -158,7 +158,7 @@ bool NodeMetaRef::handleFromTable(lua_State *L, int table, Metadata *_meta)
lua_pushnil(L); lua_pushnil(L);
while (lua_next(L, inventorytable) != 0) { while (lua_next(L, inventorytable) != 0) {
// key at index -2 and value at index -1 // key at index -2 and value at index -1
std::string name = lua_tostring(L, -2); std::string name = luaL_checkstring(L, -2);
read_inventory_list(L, -1, inv, name.c_str(), getServer(L)); read_inventory_list(L, -1, inv, name.c_str(), getServer(L));
lua_pop(L, 1); // Remove value, keep key for next iteration lua_pop(L, 1); // Remove value, keep key for next iteration
} }