[svn:parrot] r47879 - trunk/src/call

chromatic at svn.parrot.org chromatic at svn.parrot.org
Sat Jun 26 20:54:18 UTC 2010


Author: chromatic
Date: Sat Jun 26 20:54:18 2010
New Revision: 47879
URL: https://trac.parrot.org/parrot/changeset/47879

Log:
[pcc] Reordered positional checks by likelihood.

Modified:
   trunk/src/call/args.c

Modified: trunk/src/call/args.c
==============================================================================
--- trunk/src/call/args.c	Sat Jun 26 20:54:15 2010	(r47878)
+++ trunk/src/call/args.c	Sat Jun 26 20:54:18 2010	(r47879)
@@ -879,6 +879,14 @@
 
             /* Go ahead and fill the parameter with a positional argument. */
             switch (PARROT_ARG_TYPE_MASK_MASK(param_flags)) {
+              case PARROT_ARG_PMC:
+                *accessor->pmc(interp, arg_info, param_index) =
+                    VTABLE_get_pmc_keyed_int(interp, call_object, arg_index);
+                break;
+              case PARROT_ARG_STRING:
+                *accessor->string(interp, arg_info, param_index) =
+                    VTABLE_get_string_keyed_int(interp, call_object, arg_index);
+                break;
               case PARROT_ARG_INTVAL:
                 *accessor->intval(interp, arg_info, param_index) =
                     VTABLE_get_integer_keyed_int(interp, call_object, arg_index);
@@ -887,14 +895,6 @@
                 *accessor->numval(interp, arg_info, param_index) =
                     VTABLE_get_number_keyed_int(interp, call_object, arg_index);
                 break;
-              case PARROT_ARG_STRING:
-                *accessor->string(interp, arg_info, param_index) =
-                    VTABLE_get_string_keyed_int(interp, call_object, arg_index);
-                break;
-              case PARROT_ARG_PMC:
-                *accessor->pmc(interp, arg_info, param_index) =
-                    VTABLE_get_pmc_keyed_int(interp, call_object, arg_index);
-                break;
               default:
                 Parrot_ex_throw_from_c_args(interp, NULL,
                     EXCEPTION_INVALID_OPERATION, "invalid parameter type");


More information about the parrot-commits mailing list