-/*
- * jit-icalls.c: internal calls used by the JIT
+/**
+ * \file
+ * internal calls used by the JIT
*
* Author:
* Dietmar Maurer (dietmar@ximian.com)
//printf ("SFLDA1 %p\n", (char*)vtable->data + field->offset);
- if (domain->special_static_fields && (addr = g_hash_table_lookup (domain->special_static_fields, field)))
+ if (field->offset == -1) {
+ /* Special static */
+ g_assert (domain->special_static_fields);
+ mono_domain_lock (domain);
+ addr = g_hash_table_lookup (domain->special_static_fields, field);
+ mono_domain_unlock (domain);
addr = mono_get_special_static_data (GPOINTER_TO_UINT (addr));
- else
+ } else {
addr = (char*)mono_vtable_get_static_field_data (vtable) + field->offset;
-
+ }
return addr;
}
}
void
-mono_throw_method_access (MonoMethod *callee, MonoMethod *caller)
+mono_throw_method_access (MonoMethod *caller, MonoMethod *callee)
{
- char *callee_name = mono_method_full_name (callee, 1);
char *caller_name = mono_method_full_name (caller, 1);
+ char *callee_name = mono_method_full_name (callee, 1);
MonoError error;
error_init (&error);
- mono_error_set_generic_error (&error, "System", "MethodAccessException", "Method `%s' is inaccessible from method `%s'\n", callee_name, caller_name);
+ mono_error_set_generic_error (&error, "System", "MethodAccessException", "Method `%s' is inaccessible from method `%s'", callee_name, caller_name);
mono_error_set_pending_exception (&error);
g_free (callee_name);
g_free (caller_name);