static char* dump_stack (stackval *stack, stackval *sp);
static char* dump_frame (MonoInvocation *inv);
static MonoArray *get_trace_ips (MonoDomain *domain, MonoInvocation *top);
-static void ves_exec_method_with_context (MonoInvocation *frame, ThreadContext *context);
+static void ves_exec_method_with_context (MonoInvocation *frame, ThreadContext *context, unsigned short *start_with_ip, MonoException *filter_exception);
typedef void (*ICallMethod) (MonoInvocation *frame);
if (exc)
frame.invoke_trap = 1;
context->managed_code = 1;
- ves_exec_method_with_context (&frame, context);
+ ves_exec_method_with_context (&frame, context, NULL, NULL);
context->managed_code = 0;
if (context == &context_struct)
mono_native_tls_set_value (thread_context_id, NULL);
break;
}
- ves_exec_method_with_context (&frame, context);
+ ves_exec_method_with_context (&frame, context, NULL, NULL);
context->managed_code = 0;
if (context == &context_struct)
mono_native_tls_set_value (thread_context_id, NULL);
#define MINT_IN_DEFAULT default:
#endif
-static void
-ves_exec_method_with_context (MonoInvocation *frame, ThreadContext *context);
-
static void
-ves_exec_method_with_context_with_ip (MonoInvocation *frame, ThreadContext *context, unsigned short *start_with_ip, MonoException *filter_exception)
+ves_exec_method_with_context (MonoInvocation *frame, ThreadContext *context, unsigned short *start_with_ip, MonoException *filter_exception)
{
MonoInvocation child_frame;
GSList *finally_ips = NULL;
}
}
- ves_exec_method_with_context (&child_frame, context);
+ ves_exec_method_with_context (&child_frame, context, NULL, NULL);
context->current_frame = frame;
mono_error_cleanup (&error); /* FIXME: don't swallow the error */
}
- ves_exec_method_with_context (&child_frame, context);
+ ves_exec_method_with_context (&child_frame, context, NULL, NULL);
context->current_frame = frame;
mono_error_cleanup (&error); /* FIXME: don't swallow the error */
}
- ves_exec_method_with_context (&child_frame, context);
+ ves_exec_method_with_context (&child_frame, context, NULL, NULL);
context->current_frame = frame;
sp [0].data.p = unboxed;
}
- ves_exec_method_with_context (&child_frame, context);
+ ves_exec_method_with_context (&child_frame, context, NULL, NULL);
context->current_frame = frame;
sp [0].data.p = unboxed;
}
- ves_exec_method_with_context (&child_frame, context);
+ ves_exec_method_with_context (&child_frame, context, NULL, NULL);
context->current_frame = frame;
g_assert (csig->call_convention == MONO_CALL_DEFAULT);
- ves_exec_method_with_context (&child_frame, context);
+ ves_exec_method_with_context (&child_frame, context, NULL, NULL);
context->current_frame = frame;
stackval retval;
memcpy (&dup_frame, inv, sizeof (MonoInvocation));
dup_frame.retval = &retval;
- ves_exec_method_with_context_with_ip (&dup_frame, context, inv->runtime_method->code + clause->data.filter_offset, frame->ex);
+ ves_exec_method_with_context (&dup_frame, context, inv->runtime_method->code + clause->data.filter_offset, frame->ex);
if (dup_frame.retval->data.i) {
#if DEBUG_INTERP
if (tracing)
DEBUG_LEAVE ();
}
-static void
-ves_exec_method_with_context (MonoInvocation *frame, ThreadContext *context)
-{
- ves_exec_method_with_context_with_ip (frame, context, NULL, NULL);
-}
-
void
ves_exec_method (MonoInvocation *frame)
{
frame->runtime_method = mono_interp_get_runtime_method (context->domain, frame->method, &error);
mono_error_cleanup (&error); /* FIXME: don't swallow the error */
context->managed_code = 1;
- ves_exec_method_with_context (frame, context);
+ ves_exec_method_with_context (frame, context, NULL, NULL);
context->managed_code = 0;
if (frame->ex) {
if (context != &context_struct && context->current_env) {