develooper Front page | perl.cvs.parrot | Postings from January 2009

[svn:parrot] r35165 - branches/cc_restart/src

From:
allison
Date:
January 7, 2009 10:38
Subject:
[svn:parrot] r35165 - branches/cc_restart/src
Message ID:
20090107183809.6302CCB9F9@x12.develooper.com
Author: allison
Date: Wed Jan  7 10:38:08 2009
New Revision: 35165

Modified:
   branches/cc_restart/src/inter_call.c

Log:
[calling_conventions] Make an exception for method calls, not to use runops.


Modified: branches/cc_restart/src/inter_call.c
==============================================================================
--- branches/cc_restart/src/inter_call.c	(original)
+++ branches/cc_restart/src/inter_call.c	Wed Jan  7 10:38:08 2009
@@ -2728,8 +2728,10 @@
     /* Invoke the function */
     dest = VTABLE_invoke(interp, sub_obj, NULL);
 
-    /* PIR Subs need runops to run their opcodes. */
-    if (sub_obj->vtable->base_type == enum_class_Sub) {
+    /* PIR Subs need runops to run their opcodes. Methods and NCI subs
+     * don't. */
+    if (sub_obj->vtable->base_type == enum_class_Sub
+            && PMC_IS_NULL(interp->current_object)) {
         INTVAL old_core  = interp->run_core;
         opcode_t offset  = dest - interp->code->base.data;
 



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About