diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1998-03-25 15:52:29 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1998-03-25 15:52:29 -0300 |
commit | 2a2b64d6ac2ea7839dac41cc84be1c7a5a18bee7 (patch) | |
tree | bbacd86c6e92e3614dcd48b54846de5f4252f137 /lvm.c | |
parent | daa937c043bb0ddb5f4bfe676f8ff13825a99651 (diff) | |
download | lua-2a2b64d6ac2ea7839dac41cc84be1c7a5a18bee7.tar.gz lua-2a2b64d6ac2ea7839dac41cc84be1c7a5a18bee7.tar.bz2 lua-2a2b64d6ac2ea7839dac41cc84be1c7a5a18bee7.zip |
opcode "CLOSURE" gets the prototipe (instead of a previous pushconstant)
Diffstat (limited to 'lvm.c')
-rw-r--r-- | lvm.c | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lvm.c,v 1.25 1998/03/09 21:49:52 roberto Exp roberto $ | 2 | ** $Id: lvm.c,v 1.26 1998/03/11 13:59:50 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 | */ |
@@ -680,13 +680,14 @@ StkId luaV_execute (Closure *cl, TProtoFunc *tf, StkId base) | |||
680 | if (ttype(--S->top) == LUA_T_NIL) pc -= aux; | 680 | if (ttype(--S->top) == LUA_T_NIL) pc -= aux; |
681 | break; | 681 | break; |
682 | 682 | ||
683 | case CLOSURE: | 683 | case CLOSUREW: |
684 | aux = *pc++; goto closure; | 684 | aux = next_word(pc); goto closure; |
685 | 685 | ||
686 | case CLOSURE0: case CLOSURE1: | 686 | case CLOSURE: |
687 | aux -= CLOSURE0; | 687 | aux = *pc++; |
688 | closure: | 688 | closure: |
689 | luaV_closure(aux); | 689 | *S->top++ = consts[aux]; |
690 | luaV_closure(*pc++); | ||
690 | luaC_checkGC(); | 691 | luaC_checkGC(); |
691 | break; | 692 | break; |
692 | 693 | ||