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);
 }
 
 

Reply via email to