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