diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-06-20 17:41:46 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-06-20 17:41:46 -0300 |
| commit | 3941af53adee868e2cccfb9b85783aba9ac311c1 (patch) | |
| tree | 8b6295c8aefacf286c13c7d78b1d2a91421ce2b1 /lvm.c | |
| parent | 5610fdd776edd0de71864f79d50b4526df861d75 (diff) | |
| download | lua-3941af53adee868e2cccfb9b85783aba9ac311c1.tar.gz lua-3941af53adee868e2cccfb9b85783aba9ac311c1.tar.bz2 lua-3941af53adee868e2cccfb9b85783aba9ac311c1.zip | |
first implementation of independent global table per function
Diffstat (limited to 'lvm.c')
| -rw-r--r-- | lvm.c | 12 |
1 files changed, 6 insertions, 6 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lvm.c,v 1.238 2002/06/13 13:39:55 roberto Exp roberto $ | 2 | ** $Id: lvm.c,v 1.239 2002/06/14 17:21:32 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 | */ |
| @@ -401,8 +401,8 @@ StkId luaV_execute (lua_State *L) { | |||
| 401 | break; | 401 | break; |
| 402 | } | 402 | } |
| 403 | case OP_GETGLOBAL: { | 403 | case OP_GETGLOBAL: { |
| 404 | lua_assert(ttype(KBx(i)) == LUA_TSTRING); | 404 | lua_assert(ttype(KBx(i)) == LUA_TSTRING && ttype(&cl->g) == LUA_TTABLE); |
| 405 | luaV_gettable(L, gt(L), KBx(i), ra); | 405 | luaV_gettable(L, &cl->g, KBx(i), ra); |
| 406 | break; | 406 | break; |
| 407 | } | 407 | } |
| 408 | case OP_GETTABLE: { | 408 | case OP_GETTABLE: { |
| @@ -410,8 +410,8 @@ StkId luaV_execute (lua_State *L) { | |||
| 410 | break; | 410 | break; |
| 411 | } | 411 | } |
| 412 | case OP_SETGLOBAL: { | 412 | case OP_SETGLOBAL: { |
| 413 | lua_assert(ttype(KBx(i)) == LUA_TSTRING); | 413 | lua_assert(ttype(KBx(i)) == LUA_TSTRING && ttype(&cl->g) == LUA_TTABLE); |
| 414 | luaV_settable(L, gt(L), KBx(i), ra); | 414 | luaV_settable(L, &cl->g, KBx(i), ra); |
| 415 | break; | 415 | break; |
| 416 | } | 416 | } |
| 417 | case OP_SETUPVAL: { | 417 | case OP_SETUPVAL: { |
| @@ -642,7 +642,7 @@ StkId luaV_execute (lua_State *L) { | |||
| 642 | int nup, j; | 642 | int nup, j; |
| 643 | p = cl->p->p[GETARG_Bx(i)]; | 643 | p = cl->p->p[GETARG_Bx(i)]; |
| 644 | nup = p->nupvalues; | 644 | nup = p->nupvalues; |
| 645 | ncl = luaF_newLclosure(L, nup); | 645 | ncl = luaF_newLclosure(L, nup, &cl->g); |
| 646 | ncl->l.p = p; | 646 | ncl->l.p = p; |
| 647 | for (j=0; j<nup; j++, pc++) { | 647 | for (j=0; j<nup; j++, pc++) { |
| 648 | if (GET_OPCODE(*pc) == OP_GETUPVAL) | 648 | if (GET_OPCODE(*pc) == OP_GETUPVAL) |
