summaryrefslogtreecommitdiff
path: root/src/lua51/ltable.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua51/ltable.c')
-rw-r--r--src/lua51/ltable.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lua51/ltable.c b/src/lua51/ltable.c
index f489a03..73464a0 100644
--- a/src/lua51/ltable.c
+++ b/src/lua51/ltable.c
@@ -450,7 +450,9 @@ static TValue *newkey (lua_State *L, Table *t, const TValue *key) {
//c 如果mainposition位置上是空的,可以直接用mp位置存
//c 赋值
gkey(mp)->value = key->value; gkey(mp)->tt = key->tt;
- luaC_barriert(L, t, key);
+ // #define luaC_barriert(L,t,v) { if (valiswhite(v) && isblack(obj2gco(t))) luaC_barrierback(L,t); }
+ // 如果当前table是黑色,新建key时需要进行向后避障,将table记为灰色,加入grayagin链表
+ luaC_barriert(L, t, key);
lua_assert(ttisnil(gval(mp)));
return gval(mp);
}