Author: chromatic
Date: Thu Jan 1 14:02:23 2009
New Revision: 34767
Modified:
trunk/src/multidispatch.c
Log:
[MMD] Removed dod_register_pmc()/dod_unregister_pmc() pair from
Parrot_mmd_multi_dispatch_from_c_args(), as stack scanning during mark phase of
GC should keep the CallSignature PMC alive. We can revisit this if it produces
strange segfaults, but as we don't register all other stack PMCs, this should
be fine.
Modified: trunk/src/multidispatch.c
==============================================================================
--- trunk/src/multidispatch.c (original)
+++ trunk/src/multidispatch.c Thu Jan 1 14:02:23 2009
@@ -286,9 +286,6 @@
INTVAL in_return_sig = 0;
INTVAL i;
- /* Protect call signature object from collection. */
- dod_register_pmc(interp, call_object);
-
if (!sig_len)
return call_object;
@@ -423,7 +420,6 @@
#endif
Parrot_pcc_invoke_sub_from_sig_object(interp, sub, sig_object);
- dod_unregister_pmc(interp, sig_object);
}