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;
 

Reply via email to