Fix bug pertaining to rawgeti not supporting int64

This commit is contained in:
2021-11-17 15:06:10 -05:00
parent 51a95cc964
commit fb043e9971
4 changed files with 14 additions and 10 deletions

View File

@@ -195,7 +195,6 @@ void World::diff_luatabs(int64_t actor_id, World *master, StreamBuffer *xsb) {
assert(tsb.read_int32() == ncreate);
patch_tangible_databases(&tsb);
patch_numbered_tables(&tsb);
unnumber_lua_tables();
assert(tsb.empty());
// Unnumber tables in both models.
@@ -212,7 +211,7 @@ void World::patch_tanclass(StreamBuffer *sb) {
int nmodified = sb->read_int32();
for (int i = 0; i < nmodified; i++) {
int64_t id = sb->read_int64();
LS.rawgeti(tab, tangibles, id);
LS.rawget(tab, tangibles, id);
assert(LS.istable(tab));
LS.getmetatable(meta, tab);
std::string name = sb->read_string();
@@ -243,8 +242,8 @@ void World::diff_tanclass(int64_t actor_id, World *master, StreamBuffer *xsb) {
int write_count_after = tsb.total_writes();
int nmodified = 0;
for (int64_t id : closetans) {
MLS.rawgeti(mtab, mtangibles, id);
SLS.rawgeti(stab, stangibles, id);
MLS.rawget(mtab, mtangibles, id);
SLS.rawget(stab, stangibles, id);
MLS.getmetatable(mmeta, mtab);
SLS.getmetatable(smeta, stab);
MLS.rawget(mclass, mmeta, "__index");