#include <math.h>
#include <locale.h>
-#include <mono/os/gc_wrapper.h>
+#include <mono/utils/gc_wrapper.h>
#ifdef HAVE_ALLOCA_H
# include <alloca.h>
RuntimeMethod *rtm;
EnterCriticalSection (&runtime_method_lookup_section);
- if ((rtm = g_hash_table_lookup (domain->jit_code_hash, method))) {
+ if ((rtm = mono_internal_hash_table_lookup (&domain->jit_code_hash, method))) {
LeaveCriticalSection (&runtime_method_lookup_section);
return rtm;
}
rtm = mono_mempool_alloc (domain->mp, sizeof (RuntimeMethod));
memset (rtm, 0, sizeof (*rtm));
rtm->method = method;
- rtm->param_count = method->signature->param_count;
- rtm->hasthis = method->signature->hasthis;
+ rtm->param_count = mono_method_signature (method)->param_count;
+ rtm->hasthis = mono_method_signature (method)->hasthis;
rtm->valuetype = method->klass->valuetype;
- g_hash_table_insert (domain->jit_code_hash, method, rtm);
+ mono_internal_hash_table_insert (&domain->jit_code_hash, method, rtm);
LeaveCriticalSection (&runtime_method_lookup_section);
return rtm;
esize = mono_array_element_size (ac);
ea = mono_array_addr_with_size (ao, esize, pos);
- mt = frame->runtime_method->method->signature->params [ac->rank];
+ mt = mono_method_signature (frame->runtime_method->method)->params [ac->rank];
stackval_to_data (mt, &sp [ac->rank], ea, FALSE);
}
esize = mono_array_element_size (ac);
ea = mono_array_addr_with_size (ao, esize, pos);
- mt = frame->runtime_method->method->signature->ret;
+ mt = mono_method_signature (frame->runtime_method->method)->ret;
stackval_from_data (mt, frame->retval, ea, FALSE);
}
return g_string_free (str, FALSE);
while (s < sp) {
- g_string_sprintfa (str, "[%lld/0x%0llx] ", s->data.l, s->data.l);
+ g_string_append_printf (str, "[%lld/0x%0llx] ", s->data.l, s->data.l);
++s;
}
return g_string_free (str, FALSE);
case MONO_TYPE_U4:
case MONO_TYPE_CHAR:
case MONO_TYPE_BOOLEAN:
- g_string_sprintfa (str, "[%d] ", s->data.i);
+ g_string_append_printf (str, "[%d] ", s->data.i);
break;
case MONO_TYPE_STRING:
case MONO_TYPE_SZARRAY:
case MONO_TYPE_PTR:
case MONO_TYPE_I:
case MONO_TYPE_U:
- g_string_sprintfa (str, "[%p] ", s->data.p);
+ g_string_append_printf (str, "[%p] ", s->data.p);
break;
case MONO_TYPE_VALUETYPE:
if (type->data.klass->enumtype)
- g_string_sprintfa (str, "[%d] ", s->data.i);
+ g_string_append_printf (str, "[%d] ", s->data.i);
else
- g_string_sprintfa (str, "[vt:%p] ", s->data.p);
+ g_string_append_printf (str, "[vt:%p] ", s->data.p);
break;
case MONO_TYPE_R4:
case MONO_TYPE_R8:
- g_string_sprintfa (str, "[%g] ", s->data.f);
+ g_string_append_printf (str, "[%g] ", s->data.f);
break;
case MONO_TYPE_I8:
case MONO_TYPE_U8:
default:
- g_string_sprintfa (str, "[%lld/0x%0llx] ", s->data.l, s->data.l);
+ g_string_append_printf (str, "[%lld/0x%0llx] ", s->data.l, s->data.l);
break;
}
}
{
GString *str = g_string_new ("");
int i;
- MonoMethodSignature *signature = inv->runtime_method->method->signature;
+ MonoMethodSignature *signature = mono_method_signature (inv->runtime_method->method);
if (signature->param_count == 0)
return g_string_free (str, FALSE);
if (signature->hasthis)
- g_string_sprintfa (str, "%p ", inv->obj);
+ g_string_append_printf (str, "%p ", inv->obj);
for (i = 0; i < signature->param_count; ++i)
dump_stackval (str, inv->stack_args + i, signature->params [i]);
dump_retval (MonoInvocation *inv)
{
GString *str = g_string_new ("");
- MonoType *ret = inv->runtime_method->method->signature->ret;
+ MonoType *ret = mono_method_signature (inv->runtime_method->method)->ret;
if (ret->type != MONO_TYPE_VOID)
dump_stackval (str, inv->retval, ret);
args = dump_args (inv);
name = mono_method_full_name (method, TRUE);
if (source)
- g_string_sprintfa (str, "#%d: 0x%05x %-10s in %s (%s) at %s\n", i, codep, opname,
+ g_string_append_printf (str, "#%d: 0x%05x %-10s in %s (%s) at %s\n", i, codep, opname,
name, args, source);
else
- g_string_sprintfa (str, "#%d: 0x%05x %-10s in %s (%s)\n", i, codep, opname,
+ g_string_append_printf (str, "#%d: 0x%05x %-10s in %s (%s)\n", i, codep, opname,
name, args);
g_free (name);
g_free (args);
MonoInvocation frame;
ThreadContext * volatile context = TlsGetValue (thread_context_id);
MonoObject *retval = NULL;
- MonoMethodSignature *sig = method->signature;
+ MonoMethodSignature *sig = mono_method_signature (method);
MonoClass *klass = mono_class_from_mono_type (sig->ret);
int i, type, isobject = 0;
void *ret = NULL;
MINT_IN_BREAK;
}
MINT_IN_CASE(MINT_CALLINT)
- ves_pinvoke_method (frame, frame->runtime_method->method->signature, ((MonoMethodPInvoke*) frame->runtime_method->method)->addr,
+ ves_pinvoke_method (frame, mono_method_signature (frame->runtime_method->method), ((MonoMethodPInvoke*) frame->runtime_method->method)->addr,
frame->runtime_method->method->string_ctor, context);
if (frame->ex) {
rtm = NULL;
ip += 2;
child_frame.runtime_method = rtm->data_items [token];
- csig = child_frame.runtime_method->method->signature;
+ csig = mono_method_signature (child_frame.runtime_method->method);
newobj_class = child_frame.runtime_method->method->klass;
/*if (profiling_classes) {
guint count = GPOINTER_TO_UINT (g_hash_table_lookup (profiling_classes, newobj_class));
MINT_IN_BREAK;
MINT_IN_CASE(MINT_LDRMFLD) {
+ gpointer tmp;
MonoClassField *field;
char *addr;
ip += 2;
if (o->vtable->klass == mono_defaults.transparent_proxy_class) {
MonoClass *klass = ((MonoTransparentProxy*)o)->remote_class->proxy_class;
- addr = mono_load_remote_field (o, klass, field, NULL);
+
+ addr = mono_load_remote_field (o, klass, field, &tmp);
} else {
addr = (char*)o + field->offset;
}
MINT_IN_CASE(MINT_LDRMFLD_VT) {
MonoClassField *field;
char *addr;
+ gpointer tmp;
o = sp [-1].data.p;
if (!o)
ip += 4;
if (o->vtable->klass == mono_defaults.transparent_proxy_class) {
MonoClass *klass = ((MonoTransparentProxy*)o)->remote_class->proxy_class;
- addr = mono_load_remote_field (o, klass, field, NULL);
+ addr = mono_load_remote_field (o, klass, field, &tmp);
} else {
addr = (char*)o + field->offset;
}
MINT_IN_CASE(MINT_MONO_RETOBJ)
++ip;
sp--;
- stackval_from_data (frame->runtime_method->method->signature->ret, frame->retval, sp->data.p, frame->runtime_method->method->signature->pinvoke);
+ stackval_from_data (mono_method_signature (frame->runtime_method->method)->ret, frame->retval, sp->data.p,
+ mono_method_signature (frame->runtime_method->method)->pinvoke);
if (sp > frame->stack)
g_warning ("retobj: more values on stack: %d", sp-frame->stack);
goto exit_frame;
static void
add_signal_handler (int signo, void (*handler)(int))
{
-#ifdef PLATFORM_WIN32
+#ifdef HOST_WIN32
signal (signo, handler);
#else
struct sigaction sa;
#ifdef __hpux /* generates very big stack frames */
mono_threads_set_default_stacksize(32*1024*1024);
#endif
- mono_init_icall ();
+ mono_icall_init ();
mono_add_internal_call ("System.Diagnostics.StackFrame::get_frame_info", ves_icall_get_frame_info);
mono_add_internal_call ("System.Diagnostics.StackTrace::get_trace", ves_icall_get_trace);
mono_add_internal_call ("Mono.Runtime::mono_runtime_install_handlers", mono_runtime_install_handlers);
mono_profiler_load (NULL);
if (strcmp (argv [i], "--config") == 0)
config_file = argv [++i];
- if (strcmp (argv [i], "--workers") == 0) {
- mono_max_worker_threads = atoi (argv [++i]);
- if (mono_max_worker_threads < 1)
- mono_max_worker_threads = 1;
- }
if (strcmp (argv [i], "--help") == 0)
usage ();
#if DEBUG_INTERP