[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
Log:
[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
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