[svn:parrot] r43884 - trunk/src/gc

bacek at svn.parrot.org bacek at svn.parrot.org
Thu Feb 11 11:14:26 UTC 2010


Author: bacek
Date: Thu Feb 11 11:14:26 2010
New Revision: 43884
URL: https://trac.parrot.org/parrot/changeset/43884

Log:
Made block/unblock GC functions optional.

Modified:
   trunk/src/gc/api.c

Modified: trunk/src/gc/api.c
==============================================================================
--- trunk/src/gc/api.c	Thu Feb 11 06:15:24 2010	(r43883)
+++ trunk/src/gc/api.c	Thu Feb 11 11:14:26 2010	(r43884)
@@ -904,7 +904,8 @@
 Parrot_block_GC_mark(PARROT_INTERP)
 {
     ASSERT_ARGS(Parrot_block_GC_mark)
-    interp->gc_sys->block_mark(interp);
+    if (interp->gc_sys->block_mark)
+        interp->gc_sys->block_mark(interp);
 }
 
 PARROT_EXPORT
@@ -912,7 +913,8 @@
 Parrot_unblock_GC_mark(PARROT_INTERP)
 {
     ASSERT_ARGS(Parrot_unblock_GC_mark)
-    interp->gc_sys->unblock_mark(interp);
+    if (interp->gc_sys->unblock_mark)
+        interp->gc_sys->unblock_mark(interp);
 }
 
 PARROT_EXPORT
@@ -920,7 +922,8 @@
 Parrot_block_GC_sweep(PARROT_INTERP)
 {
     ASSERT_ARGS(Parrot_block_GC_sweep)
-    interp->gc_sys->block_sweep(interp);
+    if (interp->gc_sys->block_sweep)
+        interp->gc_sys->block_sweep(interp);
 }
 
 PARROT_EXPORT
@@ -928,7 +931,8 @@
 Parrot_unblock_GC_sweep(PARROT_INTERP)
 {
     ASSERT_ARGS(Parrot_unblock_GC_sweep)
-    interp->gc_sys->unblock_sweep(interp);
+    if (interp->gc_sys->unblock_sweep)
+        interp->gc_sys->unblock_sweep(interp);
 }
 
 PARROT_EXPORT
@@ -936,7 +940,10 @@
 Parrot_is_blocked_GC_mark(PARROT_INTERP)
 {
     ASSERT_ARGS(Parrot_is_blocked_GC_mark)
-    return interp->gc_sys->is_blocked_mark(interp);
+    if (interp->gc_sys->is_blocked_mark)
+        return interp->gc_sys->is_blocked_mark(interp);
+    else
+        return 0;
 }
 
 PARROT_EXPORT
@@ -944,7 +951,10 @@
 Parrot_is_blocked_GC_sweep(PARROT_INTERP)
 {
     ASSERT_ARGS(Parrot_is_blocked_GC_sweep)
-    return interp->gc_sys->is_blocked_mark(interp);
+    if (interp->gc_sys->is_blocked_sweep)
+        return interp->gc_sys->is_blocked_mark(interp);
+    else
+        return 0;
 }
 
 void


More information about the parrot-commits mailing list