diff --git a/src/client/luavaluecasts.cpp b/src/client/luavaluecasts.cpp index bf4a4874..42103568 100644 --- a/src/client/luavaluecasts.cpp +++ b/src/client/luavaluecasts.cpp @@ -25,7 +25,7 @@ int push_luavalue(const Outfit& outfit) { - g_lua.newTable(); + g_lua.createTable(0, 8); g_lua.pushInteger(outfit.getId()); g_lua.setField("type"); g_lua.pushInteger(outfit.getAuxId()); @@ -80,7 +80,7 @@ bool luavalue_cast(int index, Outfit& outfit) int push_luavalue(const Position& pos) { if(pos.isValid()) { - g_lua.newTable(); + g_lua.createTable(0, 3); g_lua.pushInteger(pos.x); g_lua.setField("x"); g_lua.pushInteger(pos.y); @@ -108,7 +108,7 @@ bool luavalue_cast(int index, Position& pos) int push_luavalue(const MarketData& data) { - g_lua.newTable(); + g_lua.createTable(0, 6); g_lua.pushInteger(data.category); g_lua.setField("category"); g_lua.pushString(data.name); diff --git a/src/framework/luaengine/luavaluecasts.h b/src/framework/luaengine/luavaluecasts.h index a8bfe74a..2b0b9b1b 100644 --- a/src/framework/luaengine/luavaluecasts.h +++ b/src/framework/luaengine/luavaluecasts.h @@ -287,7 +287,7 @@ luavalue_cast(int index, std::function& func) { template int push_luavalue(const std::list& list) { - g_lua.newTable(); + g_lua.createTable(list.size(), 0); int i = 1; for(const T& v : list) { push_internal_luavalue(v); @@ -315,7 +315,7 @@ bool luavalue_cast(int index, std::list& list) template int push_luavalue(const std::vector& vec) { - g_lua.newTable(); + g_lua.createTable(vec.size(), 0); int i = 1; for(const T& v : vec) { push_internal_luavalue(v); @@ -343,7 +343,7 @@ bool luavalue_cast(int index, std::vector& vec) template int push_luavalue(const std::deque& vec) { - g_lua.newTable(); + g_lua.createTable(vec.size(), 0); int i = 1; for(const T& v : vec) { push_internal_luavalue(v);