Lines Matching full:uv

38   UpVal *uv = &luaC_newobj(L, LUA_TUPVAL, sizeof(UpVal), NULL, 0)->uv;  in luaF_newupval()  local
39 uv->v = &uv->u.value; in luaF_newupval()
40 setnilvalue(uv->v); in luaF_newupval()
41 return uv; in luaF_newupval()
49 UpVal *uv; in luaF_findupval() local
62 uv = &luaC_newobj(L, LUA_TUPVAL, sizeof(UpVal), pp, 0)->uv; in luaF_findupval()
63 uv->v = level; /* current value lives in the stack */ in luaF_findupval()
64 uv->u.l.prev = &g->uvhead; /* double link it in `uvhead' list */ in luaF_findupval()
65 uv->u.l.next = g->uvhead.u.l.next; in luaF_findupval()
66 uv->u.l.next->u.l.prev = uv; in luaF_findupval()
67 g->uvhead.u.l.next = uv; in luaF_findupval()
68 lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv); in luaF_findupval()
69 return uv; in luaF_findupval()
73 static void unlinkupval (UpVal *uv) { in unlinkupval() argument
74 lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv); in unlinkupval()
75 uv->u.l.next->u.l.prev = uv->u.l.prev; /* remove from `uvhead' list */ in unlinkupval()
76 uv->u.l.prev->u.l.next = uv->u.l.next; in unlinkupval()
80 void luaF_freeupval (lua_State *L, UpVal *uv) { in luaF_freeupval() argument
81 if (uv->v != &uv->u.value) /* is it open? */ in luaF_freeupval()
82 unlinkupval(uv); /* remove from open list */ in luaF_freeupval()
83 luaM_free(L, uv); /* free upvalue */ in luaF_freeupval()
88 UpVal *uv; in luaF_close() local
90 while (L->openupval != NULL && (uv = gco2uv(L->openupval))->v >= level) { in luaF_close()
91 GCObject *o = obj2gco(uv); in luaF_close()
92 lua_assert(!isblack(o) && uv->v != &uv->u.value); in luaF_close()
93 L->openupval = uv->next; /* remove from `open' list */ in luaF_close()
95 luaF_freeupval(L, uv); /* free upvalue */ in luaF_close()
97 unlinkupval(uv); /* remove upvalue from 'uvhead' list */ in luaF_close()
98 setobj(L, &uv->u.value, uv->v); /* move value to upvalue slot */ in luaF_close()
99 uv->v = &uv->u.value; /* now current value lives here */ in luaF_close()
102 luaC_checkupvalcolor(g, uv); in luaF_close()