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

bacek at svn.parrot.org bacek at svn.parrot.org
Tue Mar 23 12:46:59 UTC 2010


Author: bacek
Date: Tue Mar 23 12:46:59 2010
New Revision: 45127
URL: https://trac.parrot.org/parrot/changeset/45127

Log:
More GC API fixes for mandatory implemented functions.

Modified:
   trunk/src/gc/api.c

Modified: trunk/src/gc/api.c
==============================================================================
--- trunk/src/gc/api.c	Tue Mar 23 12:46:36 2010	(r45126)
+++ trunk/src/gc/api.c	Tue Mar 23 12:46:59 2010	(r45127)
@@ -252,13 +252,12 @@
     };
 
     /* Assertions that GC subsystem has complete API */
-    PARROT_ASSERT(interp->gc_sys->destroy_child_interp);
-
     PARROT_ASSERT(interp->gc_sys->do_gc_mark);
     PARROT_ASSERT(interp->gc_sys->compact_string_pool);
 
-    PARROT_ASSERT(interp->gc_sys->mark_special);
-    PARROT_ASSERT(interp->gc_sys->pmc_needs_early_collection);
+    /* It should be mandatory. But there is abstraction leak in */
+    /* mark_foo_alive. */
+    /* PARROT_ASSERT(interp->gc_sys->mark_special); */
 
     PARROT_ASSERT(interp->gc_sys->allocate_pmc_header);
     PARROT_ASSERT(interp->gc_sys->free_pmc_header);
@@ -795,7 +794,8 @@
     ARGIN(Interp *source_interp))
 {
     ASSERT_ARGS(Parrot_gc_destroy_child_interp)
-    dest_interp->gc_sys->destroy_child_interp(dest_interp, source_interp);
+    if (dest_interp->gc_sys->destroy_child_interp)
+        dest_interp->gc_sys->destroy_child_interp(dest_interp, source_interp);
 }
 
 /*


More information about the parrot-commits mailing list