浏览代码

detail (setmetatable do not need to use a back GC barrier)

Roberto Ierusalimschy 12 年之前
父节点
当前提交
06156e7575
共有 2 个文件被更改,包括 3 次插入7 次删除
  1. 2 2
      lapi.c
  2. 1 5
      lgc.h

+ 2 - 2
lapi.c

@@ -1,5 +1,5 @@
 /*
-** $Id: lapi.c,v 2.187 2013/08/16 18:55:49 roberto Exp roberto $
+** $Id: lapi.c,v 2.188 2013/08/27 18:53:35 roberto Exp roberto $
 ** Lua API
 ** See Copyright Notice in lua.h
 */
@@ -849,7 +849,7 @@ LUA_API int lua_setmetatable (lua_State *L, int objindex) {
     case LUA_TTABLE: {
       hvalue(obj)->metatable = mt;
       if (mt) {
-        luaC_objbarrierback(L, gcvalue(obj), mt);
+        luaC_objbarrier(L, gcvalue(obj), mt);
         luaC_checkfinalizer(L, gcvalue(obj), mt);
       }
       break;

+ 1 - 5
lgc.h

@@ -1,5 +1,5 @@
 /*
-** $Id: lgc.h,v 2.74 2013/09/11 14:09:55 roberto Exp roberto $
+** $Id: lgc.h,v 2.75 2013/09/11 14:47:08 roberto Exp roberto $
 ** Garbage Collector
 ** See Copyright Notice in lua.h
 */
@@ -128,10 +128,6 @@
 	if (nolocal(obj2gco(o)), isblack(obj2gco(p)) && iswhite(obj2gco(o))) \
 		luaC_barrier_(L,obj2gco(p),obj2gco(o)); }
 
-#define luaC_objbarrierback(L,p,o)  \
-   { if (nolocal(obj2gco(o)), isblack(obj2gco(p)) && iswhite(obj2gco(o))) \
-	luaC_barrierback_(L,obj2gco(p)); }
-
 #define luaC_upvalbarrier(L,uv) \
   { if (iscollectable((uv)->v) && !upisopen(uv)) \
          luaC_upvalbarrier_(L,uv); }