lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


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