diff options
author | Eugene Sandulenko | 2017-02-03 09:13:59 +0100 |
---|---|---|
committer | GitHub | 2017-02-03 09:13:59 +0100 |
commit | 7ebc284d3c8ef8b9192004d17655d60898e749db (patch) | |
tree | 4ef9c21e4f2ad09c58693b674e5c5952667cded3 | |
parent | a5f71a3d8bd6bfa6d16909703755473d95b2b28f (diff) | |
parent | c3d533a72bedb469c42a3a8ee52830ac696a5533 (diff) | |
download | scummvm-rg350-7ebc284d3c8ef8b9192004d17655d60898e749db.tar.gz scummvm-rg350-7ebc284d3c8ef8b9192004d17655d60898e749db.tar.bz2 scummvm-rg350-7ebc284d3c8ef8b9192004d17655d60898e749db.zip |
Merge pull request #894 from wjp/lua_indexTbl
SWORD25: Use direct integer index into indexTbl
-rw-r--r-- | engines/sword25/util/lua_unpersist.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/engines/sword25/util/lua_unpersist.cpp b/engines/sword25/util/lua_unpersist.cpp index 678ddb52db..9c304503b9 100644 --- a/engines/sword25/util/lua_unpersist.cpp +++ b/engines/sword25/util/lua_unpersist.cpp @@ -116,16 +116,13 @@ static void registerObjectInIndexTable(UnSerializationInfo *info, int index) { // >>>>> permTbl indexTbl ...... obj // Make sure there is enough room on the stack - lua_checkstack(info->luaState, 2); - - lua_pushlightuserdata(info->luaState, (void *)index); - // >>>>> permTbl indexTbl ...... obj index + lua_checkstack(info->luaState, 1); - lua_pushvalue(info->luaState, -2); - // >>>>> permTbl indexTbl ...... obj index obj + lua_pushvalue(info->luaState, -1); + // >>>>> permTbl indexTbl ...... obj obj // Push the k/v pair into the indexTbl - lua_settable(info->luaState, 2); + lua_rawseti(info->luaState, 2, index); // >>>>> permTbl indexTbl ...... obj } @@ -198,10 +195,7 @@ static void unpersist(UnSerializationInfo *info) { } else { // Fetch the object from the indexTbl - lua_pushlightuserdata(info->luaState, (void *)index); - // >>>>> permTbl indexTbl ...... index - - lua_gettable(info->luaState, 2); + lua_rawgeti(info->luaState, 2, index); // >>>>> permTbl indexTbl ...... ?obj? assert(!lua_isnil(info->luaState, -1)); |