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

bacek at svn.parrot.org bacek at svn.parrot.org
Fri Oct 23 22:49:16 UTC 2009


Author: bacek
Date: Fri Oct 23 22:49:15 2009
New Revision: 42053
URL: https://trac.parrot.org/parrot/changeset/42053

Log:
[core] Poke into CallSignature directly in Parrot_pcc_merge_signature_for_tailcall

Modified:
   trunk/src/call/args.c

Modified: trunk/src/call/args.c
==============================================================================
--- trunk/src/call/args.c	Fri Oct 23 22:06:12 2009	(r42052)
+++ trunk/src/call/args.c	Fri Oct 23 22:49:15 2009	(r42053)
@@ -2354,12 +2354,13 @@
     if (PMC_IS_NULL(parent) || PMC_IS_NULL(tailcall))
         return;
     else {
-        STRING * const results_s = CONST_STRING(interp, "results");
-        STRING * const return_flag_s = CONST_STRING(interp, "return_flags");
-        PMC * const results = VTABLE_get_attr_str(interp, parent, results_s);
-        PMC * const return_flags = VTABLE_get_attr_str(interp, parent, return_flag_s);
-        VTABLE_set_attr_str(interp, tailcall, results_s, results);
-        VTABLE_set_attr_str(interp, tailcall, return_flag_s, return_flags);
+        /* Broke encapuslation. Direct poking into CallSignature is much faster */
+        PMC * results;
+        PMC * return_flags;
+        GETATTR_CallSignature_results(interp, parent, results);
+        GETATTR_CallSignature_return_flags(interp, parent, return_flags);
+        SETATTR_CallSignature_results(interp, tailcall, results);
+        SETATTR_CallSignature_return_flags(interp, tailcall, return_flags);
     }
 }
 


More information about the parrot-commits mailing list