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: { |