| 659 | |
| 660 | |
| 661 | void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v) { |
| 662 | global_State *g = G(L); |
| 663 | lua_assert(isblack(o) && iswhite(v) && !isdead(g, v) && !isdead(g, o)); |
| 664 | lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause); |
| 665 | lua_assert(ttype(&o->gch) != LUA_TTABLE); |
| 666 | /* must keep invariant? */ |
| 667 | if (g->gcstate == GCSpropagate) |
| 668 | reallymarkobject(g, v); /* restore invariant */ |
| 669 | else /* don't mind */ |
| 670 | makewhite(g, o); /* mark as white just to avoid other barriers */ |
| 671 | } |
| 672 | |
| 673 | |
| 674 | void luaC_barrierback (lua_State *L, Table *t) { |
nothing calls this directly
no test coverage detected