issue #196 missed change in non-defer mode

lua54-gc
Dibyendu Majumdar 4 years ago
parent 6e45d0ea05
commit 6643a771bf

@ -185,9 +185,10 @@ void luaF_close (lua_State *L, StkId level) {
if (uv->refcount == 0) /* no references? */
luaM_free(L, uv); /* free upvalue */
else {
setobj(L, &uv->u.value, uv->v); /* move value to upvalue slot */
uv->v = &uv->u.value; /* now current value lives here */
luaC_upvalbarrier(L, uv);
TValue* slot = &uv->u.value; /* new position for value */
setobj(L, slot, uv->v); /* move value to upvalue slot */
uv->v = slot; /* now current value lives here */
luaC_upvalbarrier(L, uv, slot);
}
}
}

Loading…
Cancel
Save