UpVal
static UpVal **getupvalref (lua_State *L, int fidx, int n, LClosure **pf) {
UpVal **up1 = getupvalref(L, fidx1, n1, &f1);
UpVal **up2 = getupvalref(L, fidx2, n2, NULL);
UpVal *up = luaF_newupval(L);
UpVal *luaF_newupval (lua_State *L) {
UpVal *uv = &luaC_newobj(L, LUA_TUPVAL, sizeof(UpVal), NULL, 0)->uv;
UpVal *luaF_findupval (lua_State *L, StkId level) {
UpVal *p;
UpVal *uv;
uv = &luaC_newobj(L, LUA_TUPVAL, sizeof(UpVal), pp, 0)->uv;
static void unlinkupval (UpVal *uv) {
void luaF_freeupval (lua_State *L, UpVal *uv) {
UpVal *uv;
LUAI_FUNC UpVal *luaF_newupval (lua_State *L);
LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level);
LUAI_FUNC void luaF_freeupval (lua_State *L, UpVal *uv);
void luaC_checkupvalcolor (global_State *g, UpVal *uv) {
UpVal *uv = gco2uv(o);
size = sizeof(UpVal);
UpVal *uv;
LUAI_FUNC void luaC_checkupvalcolor (global_State *g, UpVal *uv);
struct UpVal *prev;
struct UpVal *next;
UpVal *upvals[1]; /* list of upvalues */
UpVal uvhead; /* head of double-linked list of all open upvalues */
struct UpVal uv;
static Closure *getcached (Proto *p, UpVal **encup, StkId base) {
static void pushclosure (lua_State *L, Proto *p, UpVal **encup, StkId base,
UpVal *uv = cl->upvals[GETARG_B(i)];