X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fjit-icalls.c;h=765d3096a1cd2707f02b2d45e89bb1b2a75f8943;hb=5c11fe647563fa051f73d3571da839dfccd26f8e;hp=3f3da7572a6e3de73af728435298d48e4c7e664d;hpb=b6fede3eee64e845cbb0942363a9bab4079202a0;p=mono.git diff --git a/mono/mini/jit-icalls.c b/mono/mini/jit-icalls.c index 3f3da7572a6..765d3096a1c 100644 --- a/mono/mini/jit-icalls.c +++ b/mono/mini/jit-icalls.c @@ -74,8 +74,8 @@ ldvirtfn_internal (MonoObject *obj, MonoMethod *method, gboolean gshared) if (mono_class_is_ginst (res->klass)) context.class_inst = mono_class_get_generic_class (res->klass)->context.class_inst; - else if (res->klass->generic_container) - context.class_inst = res->klass->generic_container->context.class_inst; + else if (mono_class_is_gtd (res->klass)) + context.class_inst = mono_class_get_generic_container (res->klass)->context.class_inst; context.method_inst = mono_method_get_context (method)->method_inst; res = mono_class_inflate_generic_method_checked (res, &context, &error); @@ -1108,7 +1108,7 @@ mono_helper_compile_generic_method (MonoObject *obj, MonoMethod *method, gpointe return NULL; } vmethod = mono_object_get_virtual_method (obj, method); - g_assert (!vmethod->klass->generic_container); + g_assert (!mono_class_is_gtd (vmethod->klass)); g_assert (!mono_class_is_ginst (vmethod->klass) || !mono_class_get_generic_class (vmethod->klass)->context.class_inst->is_open); g_assert (!context->method_inst || !context->method_inst->is_open); @@ -1215,7 +1215,7 @@ mono_object_castclass_unbox (MonoObject *obj, MonoClass *klass) MonoClass *oklass; if (mini_get_debug_options ()->better_cast_details) { - jit_tls = (MonoJitTlsData *)mono_native_tls_get_value (mono_jit_tls_id); + jit_tls = (MonoJitTlsData *)mono_tls_get_jit_tls (); jit_tls->class_cast_from = NULL; } @@ -1249,7 +1249,7 @@ mono_object_castclass_with_cache (MonoObject *obj, MonoClass *klass, gpointer *c gpointer cached_vtable, obj_vtable; if (mini_get_debug_options ()->better_cast_details) { - jit_tls = (MonoJitTlsData *)mono_native_tls_get_value (mono_jit_tls_id); + jit_tls = (MonoJitTlsData *)mono_tls_get_jit_tls (); jit_tls->class_cast_from = NULL; } @@ -1332,9 +1332,9 @@ constrained_gsharedvt_call_setup (gpointer mp, MonoMethod *cmethod, MonoClass *k MonoMethod *m; int vt_slot, iface_offset; - mono_error_init (error); + error_init (error); - if (mono_class_get_flags (klass) & TYPE_ATTRIBUTE_INTERFACE) { + if (mono_class_is_interface (klass)) { MonoObject *this_obj; /* Have to use the receiver's type instead of klass, the receiver is a ref type */ @@ -1352,7 +1352,7 @@ constrained_gsharedvt_call_setup (gpointer mp, MonoMethod *cmethod, MonoClass *k mono_class_setup_vtable (klass); g_assert (klass->vtable); vt_slot = mono_method_get_vtable_slot (cmethod); - if (mono_class_get_flags (cmethod->klass) & TYPE_ATTRIBUTE_INTERFACE) { + if (mono_class_is_interface (cmethod->klass)) { iface_offset = mono_class_interface_offset (klass, cmethod->klass); g_assert (iface_offset != -1); vt_slot += iface_offset; @@ -1504,7 +1504,7 @@ resolve_iface_call (MonoObject *this_obj, int imt_slot, MonoMethod *imt_method, gpointer addr, compiled_method, aot_addr; gboolean need_rgctx_tramp = FALSE, need_unbox_tramp = FALSE; - mono_error_init (error); + error_init (error); if (!this_obj) /* The caller will handle it */ return NULL; @@ -1588,7 +1588,7 @@ resolve_vcall (MonoVTable *vt, int slot, MonoMethod *imt_method, gpointer *out_a gpointer addr, compiled_method; gboolean need_unbox_tramp = FALSE; - mono_error_init (error); + error_init (error); /* Same as in common_call_trampoline () */ /* Avoid loading metadata or creating a generic vtable if possible */ @@ -1611,7 +1611,7 @@ resolve_vcall (MonoVTable *vt, int slot, MonoMethod *imt_method, gpointer *out_a if (mono_class_is_ginst (m->klass)) context.class_inst = mono_class_get_generic_class (m->klass)->context.class_inst; else - g_assert (!m->klass->generic_container); + g_assert (!mono_class_is_gtd (m->klass)); generic_virtual = imt_method; g_assert (generic_virtual); @@ -1695,7 +1695,7 @@ mono_resolve_generic_virtual_call (MonoVTable *vt, int slot, MonoMethod *generic if (mono_class_is_ginst (m->klass)) context.class_inst = mono_class_get_generic_class (m->klass)->context.class_inst; else - g_assert (!m->klass->generic_container); + g_assert (!mono_class_is_gtd (m->klass)); g_assert (generic_virtual->is_inflated); context.method_inst = ((MonoMethodInflated*)generic_virtual)->context.method_inst; @@ -1866,12 +1866,9 @@ mono_llvmonly_init_delegate_virtual (MonoDelegate *del, MonoObject *target, Mono MonoObject* mono_get_assembly_object (MonoImage *image) { - MonoError error; - MonoObject *result; - result = (MonoObject*)mono_assembly_get_object_checked (mono_domain_get (), image->assembly, &error); - if (!result) - mono_error_set_pending_exception (&error); - return result; + ICALL_ENTRY(); + MonoObjectHandle result = MONO_HANDLE_CAST (MonoObject, mono_assembly_get_object_handle (mono_domain_get (), image->assembly, &error)); + ICALL_RETURN_OBJ (result); } MonoObject* @@ -1918,7 +1915,7 @@ mono_throw_method_access (MonoMethod *callee, MonoMethod *caller) char *caller_name = mono_method_full_name (caller, 1); MonoError error; - mono_error_init (&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_pending_exception (&error); g_free (callee_name);