diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-08-29 11:48:16 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-08-29 11:48:16 -0300 |
| commit | 9d605982605db5ab8117b4cda71284bca2d25db8 (patch) | |
| tree | 968b70b828f62ee945134424fbec866b4fc0f1bc /lvm.c | |
| parent | 4e56c0d51412817a238f9de6453aaa16704a770d (diff) | |
| download | lua-9d605982605db5ab8117b4cda71284bca2d25db8.tar.gz lua-9d605982605db5ab8117b4cda71284bca2d25db8.tar.bz2 lua-9d605982605db5ab8117b4cda71284bca2d25db8.zip | |
better definitions for MULTRET
Diffstat (limited to 'lvm.c')
| -rw-r--r-- | lvm.c | 8 |
1 files changed, 5 insertions, 3 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lvm.c,v 1.129 2000/08/22 20:53:30 roberto Exp roberto $ | 2 | ** $Id: lvm.c,v 1.130 2000/08/29 14:41:56 roberto Exp roberto $ |
| 3 | ** Lua virtual machine | 3 | ** Lua virtual machine |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -368,14 +368,16 @@ StkId luaV_execute (lua_State *L, const Closure *cl, StkId base) { | |||
| 368 | return base+GETARG_U(i); | 368 | return base+GETARG_U(i); |
| 369 | } | 369 | } |
| 370 | case OP_CALL: { | 370 | case OP_CALL: { |
| 371 | int nres = GETARG_B(i); | ||
| 372 | if (nres == MULT_RET) nres = LUA_MULTRET; | ||
| 371 | L->top = top; | 373 | L->top = top; |
| 372 | luaD_call(L, base+GETARG_A(i), GETARG_B(i)); | 374 | luaD_call(L, base+GETARG_A(i), nres); |
| 373 | top = L->top; | 375 | top = L->top; |
| 374 | break; | 376 | break; |
| 375 | } | 377 | } |
| 376 | case OP_TAILCALL: { | 378 | case OP_TAILCALL: { |
| 377 | L->top = top; | 379 | L->top = top; |
| 378 | luaD_call(L, base+GETARG_A(i), MULT_RET); | 380 | luaD_call(L, base+GETARG_A(i), LUA_MULTRET); |
| 379 | return base+GETARG_B(i); | 381 | return base+GETARG_B(i); |
| 380 | } | 382 | } |
| 381 | case OP_PUSHNIL: { | 383 | case OP_PUSHNIL: { |
