if (virtual) {
/* Same as in mono_emit_method_call_full () */
-#ifndef MONO_ARCH_HAVE_IMT
- NOT_IMPLEMENTED;
-#endif
if ((method->klass->parent == mono_defaults.multicastdelegate_class) && (!strcmp (method->name, "Invoke"))) {
/* See mono_emit_method_call_full () */
/* The gsharedvt trampoline will recognize this constant */
if (!type->byref && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR) && mini_is_gsharedvt_type_gsctx (gsctx, type))
return type;
else
- return mono_type_get_basic_type_from_generic (type);
+ return mini_native_type_replace_type (mono_type_get_basic_type_from_generic (type));
}
/*
gboolean
mini_type_is_vtype (MonoCompile *cfg, MonoType *t)
{
- return MONO_TYPE_ISSTRUCT (t) || mini_is_gsharedvt_variable_type (cfg, t);
+ t = mini_native_type_replace_type (t);
+
+ return MONO_TYPE_ISSTRUCT (t) || mini_is_gsharedvt_variable_type (cfg, t);
}
gboolean
return mini_is_gsharedvt_variable_type (cfg, &klass->byval_arg);
}
-#if defined(MONO_GSHARING)
+#if defined(ENABLE_GSHAREDVT)
#include "../../../mono-extensions/mono/mini/mini-generic-sharing-gsharedvt.c"