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) |