diff options
| author | Alexander Gavrilov | 2012-04-16 18:32:12 +0400 |
|---|---|---|
| committer | Alexander Gavrilov | 2012-04-16 18:32:12 +0400 |
| commit | ee7100216e7ac43ad51f1cdd5e51d89daa545b91 (patch) | |
| tree | cb8ea70d0db62e3680b4ed87cd1a2aacecb15b92 /depends/lua | |
| parent | 1e64a6a2f623a6f6a3ce1b0b10ccfe40acbcdde4 (diff) | |
| download | dfhack-ee7100216e7ac43ad51f1cdd5e51d89daa545b91.tar.gz dfhack-ee7100216e7ac43ad51f1cdd5e51d89daa545b91.tar.bz2 dfhack-ee7100216e7ac43ad51f1cdd5e51d89daa545b91.tar.xz | |
Fix lua interpreter bug: the C call counter is already unwound by yield.
Decrementing it causes underflow and subsequent spurious stack overflow.
Diffstat (limited to 'depends/lua')
| -rw-r--r-- | depends/lua/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | depends/lua/src/ldo.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/depends/lua/CMakeLists.txt b/depends/lua/CMakeLists.txt index 3a56aa63..b77bce6f 100644 --- a/depends/lua/CMakeLists.txt +++ b/depends/lua/CMakeLists.txt @@ -1,7 +1,7 @@ PROJECT ( lua CXX ) CMAKE_MINIMUM_REQUIRED(VERSION 2.8) -SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-DLUA_USE_APICHECK") +SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DLUA_USE_APICHECK") IF(WIN32) ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE ) diff --git a/depends/lua/src/ldo.c b/depends/lua/src/ldo.c index 26f9a674..e0f13c44 100644 --- a/depends/lua/src/ldo.c +++ b/depends/lua/src/ldo.c @@ -403,7 +403,7 @@ static void finishCcall (lua_State *L) { lua_assert(ci->u.c.k != NULL); /* must have a continuation */ lua_assert(L->nny == 0); /* finish 'luaD_call' */ - L->nCcalls--; + //L->nCcalls--; /* finish 'lua_callk' */ adjustresults(L, ci->nresults); /* call continuation function */ @@ -513,7 +513,7 @@ static void resume (lua_State *L, void *ud) { api_checknelems(L, n); firstArg = L->top - n; /* yield results come from continuation */ } - L->nCcalls--; /* finish 'luaD_call' */ + //L->nCcalls--; /* finish 'luaD_call' */ luaD_poscall(L, firstArg); /* finish 'luaD_precall' */ } unroll(L, NULL); |
