Repair buggy error-handling in makeclass/getclass

This commit is contained in:
2021-12-27 16:44:12 -05:00
parent 82381ada2e
commit 9517b3e004
5 changed files with 170 additions and 76 deletions

View File

@@ -229,6 +229,10 @@ LuaDefine(deque_create, "", "create a deque") {
LuaVar classobj;
LuaStack LS(L, rdeque, classobj);
const int imax = 4;
std::string err = LS.getclass(classobj, "deque");
if (err != "") {
luaL_error(L, "Class deque has been corrupted");
}
LS.createtable(rdeque, DEQUE_BASE + imax - 1, 0);
LS.rawset(rdeque, DEQUE_LEFT, 0);
LS.rawset(rdeque, DEQUE_FILL, 0);
@@ -236,7 +240,6 @@ LuaDefine(deque_create, "", "create a deque") {
for (int i = 0; i < imax; i++) {
LS.rawset(rdeque, DEQUE_BASE + i, 0);
}
LS.makeclass(classobj, "deque");
LS.setmetatable(rdeque, classobj);
return LS.result();
}