]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Move a GC macro.
authorMike Pall <mike>
Tue, 2 Oct 2012 07:57:49 +0000 (09:57 +0200)
committerMike Pall <mike>
Tue, 2 Oct 2012 07:57:49 +0000 (09:57 +0200)
src/lj_cdata.c
src/lj_gc.c
src/lj_gc.h

index 2f10113be74f392b5b37261f25586f7970c8ca7b..896781bdea3e4576ca9b049636241e7b375cb186 100644 (file)
@@ -56,7 +56,7 @@ void LJ_FASTCALL lj_cdata_free(global_State *g, GCcdata *cd)
   if (LJ_UNLIKELY(cd->marked & LJ_GC_CDATA_FIN)) {
     GCobj *root;
     makewhite(g, obj2gco(cd));
-    obj2gco(cd)->gch.marked |= LJ_GC_FINALIZED;
+    markfinalized(obj2gco(cd));
     if ((root = gcref(g->gc.mmudata)) != NULL) {
       setgcrefr(cd->nextgc, root->gch.nextgc);
       setgcref(root->gch.nextgc, obj2gco(cd));
index e6a9d539d6a5d512bf6c79e29dd6c1b2a0943b17..24403be33df81fa4b890327bb2ea1d467c5da1cd 100644 (file)
@@ -35,7 +35,6 @@
 #define white2gray(x)          ((x)->gch.marked &= (uint8_t)~LJ_GC_WHITES)
 #define gray2black(x)          ((x)->gch.marked |= LJ_GC_BLACK)
 #define isfinalized(u)         ((u)->marked & LJ_GC_FINALIZED)
-#define markfinalized(u)       ((u)->marked |= LJ_GC_FINALIZED)
 
 /* -- Mark phase ---------------------------------------------------------- */
 
@@ -122,7 +121,7 @@ static void gc_mark_mmudata(global_State *g)
   }
 }
 
-/* Separate userdata which which needs finalization to mmudata list. */
+/* Separate userdata objects to be finalized to mmudata list. */
 size_t lj_gc_separateudata(global_State *g, int all)
 {
   size_t m = 0;
@@ -132,11 +131,11 @@ size_t lj_gc_separateudata(global_State *g, int all)
     if (!(iswhite(o) || all) || isfinalized(gco2ud(o))) {
       p = &o->gch.nextgc;  /* Nothing to do. */
     } else if (!lj_meta_fastg(g, tabref(gco2ud(o)->metatable), MM_gc)) {
-      markfinalized(gco2ud(o));  /* Done, as there's no __gc metamethod. */
+      markfinalized(o);  /* Done, as there's no __gc metamethod. */
       p = &o->gch.nextgc;
     } else {  /* Otherwise move userdata to be finalized to mmudata list. */
       m += sizeudata(gco2ud(o));
-      markfinalized(gco2ud(o));
+      markfinalized(o);
       *p = o->gch.nextgc;
       if (gcref(g->gc.mmudata)) {  /* Link to end of mmudata list. */
        GCobj *root = gcref(g->gc.mmudata);
index df66259ed9cdb3b248c38249be6fd29ac0507ea7..324078a0e4903c97269f7229599e114a7b179c87 100644 (file)
@@ -43,6 +43,7 @@ enum {
 #define flipwhite(x)   ((x)->gch.marked ^= LJ_GC_WHITES)
 #define black2gray(x)  ((x)->gch.marked &= (uint8_t)~LJ_GC_BLACK)
 #define fixstring(s)   ((s)->marked |= LJ_GC_FIXED)
+#define markfinalized(x)       ((x)->gch.marked |= LJ_GC_FINALIZED)
 
 /* Collector. */
 LJ_FUNC size_t lj_gc_separateudata(global_State *g, int all);