| 6662 | |
| 6663 | |
| 6664 | void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v) { |
| 6665 | global_State *g = G(L); |
| 6666 | lua_assert(isblack(o) && iswhite(v) && !isdead(g, v) && !isdead(g, o)); |
| 6667 | lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause); |
| 6668 | lua_assert(ttype(&o->gch) != LUA_TTABLE); |
| 6669 | /* must keep invariant? */ |
| 6670 | if (g->gcstate == GCSpropagate) |
| 6671 | reallymarkobject(g, v); /* restore invariant */ |
| 6672 | else /* don't mind */ |
| 6673 | makewhite(g, o); /* mark as white just to avoid other barriers */ |
| 6674 | } |
| 6675 | |
| 6676 | |
| 6677 | void luaC_barrierback (lua_State *L, Table *t) { |
nothing calls this directly
no test coverage detected