aboutsummaryrefslogtreecommitdiff
path: root/src/lj_func.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_func.c')
-rw-r--r--src/lj_func.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/lj_func.c b/src/lj_func.c
index b679ec81..abb7afd5 100644
--- a/src/lj_func.c
+++ b/src/lj_func.c
@@ -76,9 +76,9 @@ static GCupval *func_finduv(lua_State *L, TValue *slot)
76 GCupval *p; 76 GCupval *p;
77 GCupval *uv; 77 GCupval *uv;
78 /* Search the sorted list of open upvalues. */ 78 /* Search the sorted list of open upvalues. */
79 while (gcref(*pp) != NULL && (p = gco2uv(gcref(*pp)))->v >= slot) { 79 while (gcref(*pp) != NULL && uvval((p = gco2uv(gcref(*pp)))) >= slot) {
80 lua_assert(!p->closed && p->v != &p->tv); 80 lua_assert(!p->closed && uvval(p) != &p->tv);
81 if (p->v == slot) { /* Found open upvalue pointing to same slot? */ 81 if (uvval(p) == slot) { /* Found open upvalue pointing to same slot? */
82 if (isdead(g, obj2gco(p))) /* Resurrect it, if it's dead. */ 82 if (isdead(g, obj2gco(p))) /* Resurrect it, if it's dead. */
83 flipwhite(obj2gco(p)); 83 flipwhite(obj2gco(p));
84 return p; 84 return p;
@@ -90,7 +90,7 @@ static GCupval *func_finduv(lua_State *L, TValue *slot)
90 newwhite(g, uv); 90 newwhite(g, uv);
91 uv->gct = ~LJ_TUPVAL; 91 uv->gct = ~LJ_TUPVAL;
92 uv->closed = 0; /* Still open. */ 92 uv->closed = 0; /* Still open. */
93 uv->v = slot; /* Pointing to the stack slot. */ 93 setmref(uv->v, slot); /* Pointing to the stack slot. */
94 /* NOBARRIER: The GCupval is new (marked white) and open. */ 94 /* NOBARRIER: The GCupval is new (marked white) and open. */
95 setgcrefr(uv->nextgc, *pp); /* Insert into sorted list of open upvalues. */ 95 setgcrefr(uv->nextgc, *pp); /* Insert into sorted list of open upvalues. */
96 setgcref(*pp, obj2gco(uv)); 96 setgcref(*pp, obj2gco(uv));
@@ -108,9 +108,9 @@ void LJ_FASTCALL lj_func_closeuv(lua_State *L, TValue *level)
108 GCupval *uv; 108 GCupval *uv;
109 global_State *g = G(L); 109 global_State *g = G(L);
110 while (gcref(L->openupval) != NULL && 110 while (gcref(L->openupval) != NULL &&
111 (uv = gco2uv(gcref(L->openupval)))->v >= level) { 111 uvval((uv = gco2uv(gcref(L->openupval)))) >= level) {
112 GCobj *o = obj2gco(uv); 112 GCobj *o = obj2gco(uv);
113 lua_assert(!isblack(o) && !uv->closed && uv->v != &uv->tv); 113 lua_assert(!isblack(o) && !uv->closed && uvval(uv) != &uv->tv);
114 setgcrefr(L->openupval, uv->nextgc); /* No longer in open list. */ 114 setgcrefr(L->openupval, uv->nextgc); /* No longer in open list. */
115 if (isdead(g, o)) { 115 if (isdead(g, o)) {
116 lj_func_freeuv(g, uv); 116 lj_func_freeuv(g, uv);