[svn:parrot] r44925 - branches/pcc_hackathon_6Mar10/src/call

bacek at svn.parrot.org bacek at svn.parrot.org
Sun Mar 14 20:59:03 UTC 2010


Author: bacek
Date: Sun Mar 14 20:59:01 2010
New Revision: 44925
URL: https://trac.parrot.org/parrot/changeset/44925

Log:
Don't try to clone_key_arg for PMCNULL argument.

Modified:
   branches/pcc_hackathon_6Mar10/src/call/args.c

Modified: branches/pcc_hackathon_6Mar10/src/call/args.c
==============================================================================
--- branches/pcc_hackathon_6Mar10/src/call/args.c	Sun Mar 14 11:03:08 2010	(r44924)
+++ branches/pcc_hackathon_6Mar10/src/call/args.c	Sun Mar 14 20:59:01 2010	(r44925)
@@ -595,7 +595,9 @@
                     dissect_aggregate_arg(interp, call_object, pmc_value);
                 }
                 else {
-                    VTABLE_push_pmc(interp, call_object, clone_key_arg(interp, pmc_value));
+                    VTABLE_push_pmc(interp, call_object, PMC_IS_NULL(pmc_value)
+                            ? PMCNULL
+                            : clone_key_arg(interp, pmc_value));
                 }
 
                 break;
@@ -833,7 +835,9 @@
                     }
                 }
                 else
-                    VTABLE_push_pmc(interp, call_object, clone_key_arg(interp, pmc_arg));
+                    VTABLE_push_pmc(interp, call_object, PMC_IS_NULL(pmc_arg)
+                            ? PMCNULL
+                            : clone_key_arg(interp, pmc_arg));
                 break;
             }
           case '-':
@@ -912,7 +916,9 @@
                     i++; /* skip 'f' */
                 }
                 else {
-                    VTABLE_push_pmc(interp, call_object, clone_key_arg(interp, pmc_arg));
+                    VTABLE_push_pmc(interp, call_object, PMC_IS_NULL(pmc_arg)
+                            ? PMCNULL
+                            : clone_key_arg(interp, pmc_arg));
                     if (type_lookahead == 'i') {
                         if (i != 0)
                             Parrot_ex_throw_from_c_args(interp, NULL,


More information about the parrot-commits mailing list