|
Roberto Ierusalimschy wrote:
To test this theory, those with the bug could just remove the following lines from luaF_close (lfunc.c:108): unlinkupval(uv); setobj(L, &uv->u.value, uv->v); - if (isgray(o)) { - gray2black(o); /* closed upvalues are never gray */ - luaC_barrier(L, uv, &uv->u.value); - } uv->v = &uv->u.value; /* now current value lives here */ luaC_linkupval(L, uv); /* link upvalue into `gcroot' list */
With this patch, it seems that I can no longer reproduce the previously fairly reproducable problem. Thanks! --Adam -- Adam D. Moss - adam@gimp.org