static Closure *luaV_closure (lua_State *L, int nelems) { Closure *c = luaF_newclosure(L, nelems); L->top -= nelems; while (nelems--) c->upvalue[nelems] = *(L->top+nelems); clvalue(L->top) = c; ttype(L->top) = LUA_TFUNCTION; incr_top; return c; }
void luaV_closure(int32 nelems) { if (nelems > 0) { Stack *S = &lua_state->stack; Closure *c = luaF_newclosure(nelems); c->consts[0] = *(S->top - 1); memcpy(&c->consts[1], S->top - (nelems + 1), nelems * sizeof(TObject)); S->top -= nelems; ttype(S->top - 1) = LUA_T_CLOSURE; (S->top - 1)->value.cl = c; } }