diff options
Diffstat (limited to 'ldo.c')
-rw-r--r-- | ldo.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: ldo.c,v 2.41 2006/09/11 12:44:56 roberto Exp roberto $ | 2 | ** $Id: ldo.c,v 2.42 2006/09/11 14:07:24 roberto Exp roberto $ |
3 | ** Stack and Call structure of Lua | 3 | ** Stack and Call structure of Lua |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -346,8 +346,11 @@ int luaD_poscall (lua_State *L, StkId firstResult) { | |||
346 | StkId res; | 346 | StkId res; |
347 | int wanted, i; | 347 | int wanted, i; |
348 | CallInfo *ci; | 348 | CallInfo *ci; |
349 | if (L->hookmask & LUA_MASKRET) | 349 | if (L->hookmask & (LUA_MASKRET | LUA_MASKLINE)) { |
350 | firstResult = callrethooks(L, firstResult); | 350 | if (L->hookmask & LUA_MASKRET) |
351 | firstResult = callrethooks(L, firstResult); | ||
352 | L->oldpc = (L->ci - 1)->savedpc; /* set 'oldpc' for returning function */ | ||
353 | } | ||
351 | ci = L->ci--; | 354 | ci = L->ci--; |
352 | res = ci->func; /* res == final position of 1st result */ | 355 | res = ci->func; /* res == final position of 1st result */ |
353 | wanted = ci->nresults; | 356 | wanted = ci->nresults; |