diff options
| author | chai <chaifix@163.com> | 2020-09-09 20:09:27 +0800 |
|---|---|---|
| committer | chai <chaifix@163.com> | 2020-09-09 20:09:27 +0800 |
| commit | 229a3937a3b99a175b551e28d09b9a45d37c44f7 (patch) | |
| tree | 3dce1ff5cbb81fe9d6a774c77878a48146ead8d0 /src/lua51/ltable.c | |
| parent | 77ac95b9985f5669d6659bfb54728786d28c2ef0 (diff) | |
*misc
Diffstat (limited to 'src/lua51/ltable.c')
| -rw-r--r-- | src/lua51/ltable.c | 4 |
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); } |
