[svn:parrot] r39882 - trunk/src/runcore

whiteknight at svn.parrot.org whiteknight at svn.parrot.org
Sat Jul 4 18:37:15 UTC 2009

Author: whiteknight
Date: Sat Jul  4 18:37:15 2009
New Revision: 39882
URL: https://trac.parrot.org/parrot/changeset/39882

[gc] The gc_debug core doesn't trace the system stack between dispatches. This causes a problem when we recurse into a new runcore while there are PObjs in the previous runcore that are only located on the stack and not anchored anywhere else in the memory graph. Change this to run a GC_TRACE_FULL trace, to make sure we cover the stack. Sure it's slower, but we don't use gc_debug because of the blinding speed


Modified: trunk/src/runcore/cores.c
--- trunk/src/runcore/cores.c	Sat Jul  4 18:34:38 2009	(r39881)
+++ trunk/src/runcore/cores.c	Sat Jul  4 18:37:15 2009	(r39882)
@@ -489,7 +489,7 @@
             Parrot_ex_throw_from_c_args(interp, NULL, 1,
                 "attempt to access code outside of current code segment");
-        Parrot_gc_mark_and_sweep(interp, 0);
+        Parrot_gc_mark_and_sweep(interp, GC_TRACE_FULL);
         CONTEXT(interp)->current_pc = pc;
         DO_OP(pc, interp);

More information about the parrot-commits mailing list