diff options
Diffstat (limited to 'lfunc.c')
| -rw-r--r-- | lfunc.c | 20 |
1 files changed, 10 insertions, 10 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lfunc.c,v 1.73 2003/12/03 20:03:07 roberto Exp roberto $ | 2 | ** $Id: lfunc.c,v 1.74 2003/12/09 16:56:11 roberto Exp roberto $ |
| 3 | ** Auxiliary functions to manipulate prototypes and closures | 3 | ** Auxiliary functions to manipulate prototypes and closures |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -21,16 +21,16 @@ | |||
| 21 | 21 | ||
| 22 | Closure *luaF_newCclosure (lua_State *L, int nelems) { | 22 | Closure *luaF_newCclosure (lua_State *L, int nelems) { |
| 23 | Closure *c = cast(Closure *, luaM_malloc(L, sizeCclosure(nelems))); | 23 | Closure *c = cast(Closure *, luaM_malloc(L, sizeCclosure(nelems))); |
| 24 | luaC_link(L, valtogco(c), LUA_TFUNCTION); | 24 | luaC_link(L, obj2gco(c), LUA_TFUNCTION); |
| 25 | c->c.isC = 1; | 25 | c->c.isC = 1; |
| 26 | c->c.nupvalues = cast(lu_byte, nelems); | 26 | c->c.nupvalues = cast(lu_byte, nelems); |
| 27 | return c; | 27 | return c; |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | 30 | ||
| 31 | Closure *luaF_newLclosure (lua_State *L, int nelems, TObject *e) { | 31 | Closure *luaF_newLclosure (lua_State *L, int nelems, TValue *e) { |
| 32 | Closure *c = cast(Closure *, luaM_malloc(L, sizeLclosure(nelems))); | 32 | Closure *c = cast(Closure *, luaM_malloc(L, sizeLclosure(nelems))); |
| 33 | luaC_link(L, valtogco(c), LUA_TFUNCTION); | 33 | luaC_link(L, obj2gco(c), LUA_TFUNCTION); |
| 34 | c->l.isC = 0; | 34 | c->l.isC = 0; |
| 35 | c->l.g = *e; | 35 | c->l.g = *e; |
| 36 | c->l.nupvalues = cast(lu_byte, nelems); | 36 | c->l.nupvalues = cast(lu_byte, nelems); |
| @@ -40,7 +40,7 @@ Closure *luaF_newLclosure (lua_State *L, int nelems, TObject *e) { | |||
| 40 | 40 | ||
| 41 | UpVal *luaF_newupval (lua_State *L) { | 41 | UpVal *luaF_newupval (lua_State *L) { |
| 42 | UpVal *uv = luaM_new(L, UpVal); | 42 | UpVal *uv = luaM_new(L, UpVal); |
| 43 | luaC_link(L, valtogco(uv), LUA_TUPVAL); | 43 | luaC_link(L, obj2gco(uv), LUA_TUPVAL); |
| 44 | uv->v = &uv->value; | 44 | uv->v = &uv->value; |
| 45 | setnilvalue(uv->v); | 45 | setnilvalue(uv->v); |
| 46 | return uv; | 46 | return uv; |
| @@ -60,7 +60,7 @@ UpVal *luaF_findupval (lua_State *L, StkId level) { | |||
| 60 | uv->marked = bitmask(FIXEDBIT); /* open upvalues cannot be collected */ | 60 | uv->marked = bitmask(FIXEDBIT); /* open upvalues cannot be collected */ |
| 61 | uv->v = level; /* current value lives in the stack */ | 61 | uv->v = level; /* current value lives in the stack */ |
| 62 | uv->next = *pp; /* chain it in the proper position */ | 62 | uv->next = *pp; /* chain it in the proper position */ |
| 63 | *pp = valtogco(uv); | 63 | *pp = obj2gco(uv); |
| 64 | return uv; | 64 | return uv; |
| 65 | } | 65 | } |
| 66 | 66 | ||
| @@ -68,18 +68,18 @@ UpVal *luaF_findupval (lua_State *L, StkId level) { | |||
| 68 | void luaF_close (lua_State *L, StkId level) { | 68 | void luaF_close (lua_State *L, StkId level) { |
| 69 | UpVal *uv; | 69 | UpVal *uv; |
| 70 | while ((uv = ngcotouv(L->openupval)) != NULL && uv->v >= level) { | 70 | while ((uv = ngcotouv(L->openupval)) != NULL && uv->v >= level) { |
| 71 | setobj(&uv->value, uv->v); | 71 | setobj(L, &uv->value, uv->v); |
| 72 | luaC_barrier(L, uv, uv->v); | 72 | luaC_barrier(L, uv, uv->v); |
| 73 | uv->v = &uv->value; /* now current value lives here */ | 73 | uv->v = &uv->value; /* now current value lives here */ |
| 74 | L->openupval = uv->next; /* remove from `open' list */ | 74 | L->openupval = uv->next; /* remove from `open' list */ |
| 75 | luaC_link(L, valtogco(uv), LUA_TUPVAL); | 75 | luaC_link(L, obj2gco(uv), LUA_TUPVAL); |
| 76 | } | 76 | } |
| 77 | } | 77 | } |
| 78 | 78 | ||
| 79 | 79 | ||
| 80 | Proto *luaF_newproto (lua_State *L) { | 80 | Proto *luaF_newproto (lua_State *L) { |
| 81 | Proto *f = luaM_new(L, Proto); | 81 | Proto *f = luaM_new(L, Proto); |
| 82 | luaC_link(L, valtogco(f), LUA_TPROTO); | 82 | luaC_link(L, obj2gco(f), LUA_TPROTO); |
| 83 | f->k = NULL; | 83 | f->k = NULL; |
| 84 | f->sizek = 0; | 84 | f->sizek = 0; |
| 85 | f->p = NULL; | 85 | f->p = NULL; |
| @@ -105,7 +105,7 @@ Proto *luaF_newproto (lua_State *L) { | |||
| 105 | void luaF_freeproto (lua_State *L, Proto *f) { | 105 | void luaF_freeproto (lua_State *L, Proto *f) { |
| 106 | luaM_freearray(L, f->code, f->sizecode, Instruction); | 106 | luaM_freearray(L, f->code, f->sizecode, Instruction); |
| 107 | luaM_freearray(L, f->p, f->sizep, Proto *); | 107 | luaM_freearray(L, f->p, f->sizep, Proto *); |
| 108 | luaM_freearray(L, f->k, f->sizek, TObject); | 108 | luaM_freearray(L, f->k, f->sizek, TValue); |
| 109 | luaM_freearray(L, f->lineinfo, f->sizelineinfo, int); | 109 | luaM_freearray(L, f->lineinfo, f->sizelineinfo, int); |
| 110 | luaM_freearray(L, f->locvars, f->sizelocvars, struct LocVar); | 110 | luaM_freearray(L, f->locvars, f->sizelocvars, struct LocVar); |
| 111 | luaM_freearray(L, f->upvalues, f->sizeupvalues, TString *); | 111 | luaM_freearray(L, f->upvalues, f->sizeupvalues, TString *); |
