#include <mono/metadata/object.h>
#include <mono/metadata/threads.h>
+#include <mono/metadata/threadpool.h>
#include <mono/metadata/monitor.h>
#include <mono/metadata/reflection.h>
#include <mono/metadata/assembly.h>
#include <mono/metadata/locales.h>
#include <mono/metadata/filewatcher.h>
#include <mono/metadata/char-conversions.h>
+#include <mono/metadata/security.h>
#include <mono/io-layer/io-layer.h>
#include <mono/utils/strtod.h>
#include <mono/utils/monobitset.h>
}
}
return TYPECODE_OBJECT;
+ case MONO_TYPE_GENERICINST:
+ return TYPECODE_OBJECT;
default:
g_error ("type 0x%02x not handled in GetTypeCode()", t);
}
MONO_ARCH_SAVE_REGS;
- if ((req_info & PInfo_ReflectedType) != 0 || (req_info & PInfo_DeclaringType) != 0)
+ if ((req_info & PInfo_ReflectedType) != 0)
info->parent = mono_type_get_object (domain, &property->klass->byval_arg);
+ else if ((req_info & PInfo_DeclaringType) != 0)
+ info->parent = mono_type_get_object (domain, &property->property->parent->byval_arg);
if ((req_info & PInfo_Name) != 0)
info->name = mono_string_new (domain, property->property->name);
MONO_ARCH_SAVE_REGS;
- info->parent = mono_type_get_object (domain, &event->klass->byval_arg);
+ info->declaring_type = mono_type_get_object (domain, &event->klass->byval_arg);
+ info->reflected_type = mono_type_get_object (domain, &event->event->parent->byval_arg);
+
info->name = mono_string_new (domain, event->event->name);
info->attrs = event->event->attrs;
info->add_method = event->event->add ? mono_method_get_object (domain, event->event->add, NULL): NULL;
}
static MonoArray*
-ves_icall_Type_GetGenericArguments (MonoReflectionType *type)
+ves_icall_MonoType_GetGenericArguments (MonoReflectionType *type)
{
MonoArray *res;
MonoClass *klass, *pklass;
types [i] = t->type;
}
- geninst = mono_reflection_bind_generic_parameters (type, count, types, NULL);
+ geninst = mono_reflection_bind_generic_parameters (type, count, types);
return mono_type_get_object (mono_object_domain (type), geninst);
}
return FALSE;
}
-static MonoReflectionGenericParam*
-ves_icall_TypeBuilder_define_generic_parameter (MonoReflectionTypeBuilder *tb, MonoString *name, int index)
-{
- MONO_ARCH_SAVE_REGS;
-
- return mono_reflection_define_generic_parameter (tb, NULL, name, index);
-}
-
-static MonoReflectionGenericParam*
-ves_icall_MethodBuilder_define_generic_parameter (MonoReflectionMethodBuilder *mb, MonoString *name, int index)
-{
- MONO_ARCH_SAVE_REGS;
-
- return mono_reflection_define_generic_parameter (NULL, mb, name, index);
-}
-
static MonoReflectionType*
ves_icall_MonoGenericInst_GetParentType (MonoReflectionGenericInst *type)
{
klass = mono_class_from_mono_type (ginst->generic_type);
- res = mono_array_new (domain, System_Reflection_MonoGenericInst, klass->interface_count);
+ res = mono_array_new (domain, System_Reflection_MonoGenericInst, ginst->count_ifaces);
- for (i = 0; i < klass->interface_count; i++) {
+ for (i = 0; i < ginst->count_ifaces; i++) {
MonoReflectionType *iface = mono_type_get_object (domain, ginst->ifaces [i]);
mono_array_set (res, gpointer, i, iface);
return res;
}
-static MonoArray*
-ves_icall_MonoGenericInst_GetNestedTypes (MonoReflectionGenericInst *type)
-{
- static MonoClass *System_Reflection_MonoGenericInst;
- MonoGenericInst *ginst;
- MonoDomain *domain;
- MonoArray *res;
- GList *tmpn;
- int count, i;
-
- MONO_ARCH_SAVE_REGS;
-
- if (!System_Reflection_MonoGenericInst) {
- System_Reflection_MonoGenericInst = mono_class_from_name (
- mono_defaults.corlib, "System.Reflection", "MonoGenericInst");
- g_assert (System_Reflection_MonoGenericInst);
- }
-
- domain = mono_object_domain (type);
-
- ginst = type->type.type->data.generic_inst;
-
- for (count = 0, tmpn = ginst->nested; tmpn; tmpn = tmpn->next)
- count++;
-
- res = mono_array_new (domain, System_Reflection_MonoGenericInst, count);
- for (i = 0, tmpn = ginst->nested; tmpn; tmpn = tmpn->next, i++) {
- MonoClass *nc = mono_class_from_mono_type (tmpn->data);
- MonoReflectionType *type;
-
- mono_class_init (nc);
- type = mono_type_get_object (domain, tmpn->data);
- mono_array_set (res, gpointer, i, type);
- }
-
- return res;
-}
-
static MonoArray*
ves_icall_MonoGenericInst_GetMethods (MonoReflectionGenericInst *type,
MonoReflectionType *reflected_type)
return res;
}
-static void
-ves_icall_MonoGenericParam_initialize (MonoReflectionGenericParam *gparam)
+static MonoArray*
+ves_icall_MonoGenericInst_GetEvents (MonoReflectionGenericInst *type,
+ MonoReflectionType *reflected_type)
{
+ static MonoClass *System_Reflection_EventInfo;
+ MonoGenericInst *ginst;
+ MonoDynamicGenericInst *dginst;
+ MonoDomain *domain;
+ MonoClass *refclass;
+ MonoArray *res;
+ int i;
+
MONO_ARCH_SAVE_REGS;
- mono_reflection_initialize_generic_parameter (gparam);
+
+ if (!System_Reflection_EventInfo)
+ System_Reflection_EventInfo = mono_class_from_name (
+ mono_defaults.corlib, "System.Reflection", "EventInfo");
+
+ ginst = type->type.type->data.generic_inst;
+ g_assert ((dginst = ginst->dynamic_info) != NULL);
+
+ refclass = mono_class_from_mono_type (reflected_type->type);
+
+ domain = mono_object_domain (type);
+ res = mono_array_new (domain, System_Reflection_EventInfo, dginst->count_events);
+
+ for (i = 0; i < dginst->count_events; i++)
+ mono_array_set (res, gpointer, i,
+ mono_event_get_object (domain, refclass, &dginst->events [i]));
+
+ return res;
}
static MonoReflectionMethod *
return mono_method_get_object (mono_object_domain (type), method, klass);
}
+static MonoReflectionMethod *
+ves_icall_MonoMethod_GetGenericMethodDefinition (MonoReflectionMethod *method)
+{
+ MonoMethodInflated *imethod;
+
+ MONO_ARCH_SAVE_REGS;
+
+ if (!method->method->signature->is_inflated) {
+ if (method->method->signature->generic_param_count)
+ return method;
+
+ return NULL;
+ }
+
+ imethod = (MonoMethodInflated *) method->method;
+ if (imethod->context->gmethod && imethod->context->gmethod->reflection_info)
+ return imethod->context->gmethod->reflection_info;
+ else
+ return mono_method_get_object (
+ mono_object_domain (method), imethod->declaring, NULL);
+}
+
static gboolean
-ves_icall_MethodInfo_get_IsGenericMethodDefinition (MonoReflectionMethod *method)
+ves_icall_MonoMethod_get_HasGenericParameters (MonoReflectionMethod *method)
{
- MonoMethodNormal *mn;
MONO_ARCH_SAVE_REGS;
if ((method->method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL) ||
(method->method->iflags & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL))
return FALSE;
- mn = (MonoMethodNormal *) method->method;
- return mn->header->gen_params != NULL;
+ return method->method->signature->generic_param_count != 0;
+}
+
+static gboolean
+ves_icall_MonoMethod_get_Mono_IsInflatedMethod (MonoReflectionMethod *method)
+{
+ MONO_ARCH_SAVE_REGS;
+
+ if ((method->method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL) ||
+ (method->method->iflags & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL))
+ return FALSE;
+
+ return method->method->signature->is_inflated;
+}
+
+static gboolean
+ves_icall_MonoMethod_get_IsGenericMethodDefinition (MonoReflectionMethod *method)
+{
+ MONO_ARCH_SAVE_REGS;
+
+ if ((method->method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL) ||
+ (method->method->iflags & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL))
+ return FALSE;
+
+ return method->method->signature->generic_param_count != 0;
}
static MonoArray*
ves_icall_MonoMethod_GetGenericArguments (MonoReflectionMethod *method)
{
- MonoMethodNormal *mn;
MonoArray *res;
+ MonoDomain *domain;
+ MonoMethodNormal *mn;
int count, i;
MONO_ARCH_SAVE_REGS;
+ domain = mono_object_domain (method);
+
if ((method->method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL) ||
(method->method->iflags & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL))
- return mono_array_new (mono_object_domain (method), mono_defaults.monotype_class, 0);
+ return mono_array_new (domain, mono_defaults.monotype_class, 0);
+
+ if (method->method->signature->is_inflated) {
+ MonoMethodInflated *imethod = (MonoMethodInflated *) method->method;
+ MonoGenericMethod *gmethod = imethod->context->gmethod;
+
+ if (gmethod) {
+ count = gmethod->mtype_argc;
+ res = mono_array_new (domain, mono_defaults.monotype_class, count);
+
+ for (i = 0; i < count; i++) {
+ MonoType *t = gmethod->mtype_argv [i];
+ mono_array_set (
+ res, gpointer, i, mono_type_get_object (domain, t));
+ }
+
+ return res;
+ }
+ }
mn = (MonoMethodNormal *) method->method;
count = method->method->signature->generic_param_count;
- res = mono_array_new (mono_object_domain (method), mono_defaults.monotype_class, count);
+ res = mono_array_new (domain, mono_defaults.monotype_class, count);
for (i = 0; i < count; i++) {
MonoGenericParam *param = &mn->header->gen_params [i];
- MonoClass *pklass = mono_class_from_generic_parameter (param, method->method->klass->image, TRUE);
- mono_array_set (res, gpointer, i, mono_type_get_object (mono_object_domain (method), &pklass->byval_arg));
+ MonoClass *pklass = mono_class_from_generic_parameter (
+ param, method->method->klass->image, TRUE);
+ mono_array_set (res, gpointer, i,
+ mono_type_get_object (domain, &pklass->byval_arg));
}
return res;
}
g_free (utf8_name);
- return mono_field_get_object (domain, klass, field);
+ return mono_field_get_object (domain, startklass, field);
}
if (!(bflags & BFLAGS_DeclaredOnly) && (klass = klass->parent))
goto handle_parent;
}
match = 0;
- if (g_hash_table_lookup (method_slots, GUINT_TO_POINTER (method->slot)))
- continue;
- g_hash_table_insert (method_slots, GUINT_TO_POINTER (method->slot), method);
+ if (method->slot != -1) {
+ if (g_hash_table_lookup (method_slots, GUINT_TO_POINTER (method->slot)))
+ continue;
+ g_hash_table_insert (method_slots, GUINT_TO_POINTER (method->slot), method);
+ }
+
member = (MonoObject*)mono_method_get_object (domain, method, refklass);
l = g_slist_prepend (l, member);
continue;
}
- if (g_hash_table_lookup (method_slots, GUINT_TO_POINTER (method->slot)))
- continue;
- g_hash_table_insert (method_slots, GUINT_TO_POINTER (method->slot), prop);
+ if (method->slot != -1) {
+ if (g_hash_table_lookup (method_slots, GUINT_TO_POINTER (method->slot)))
+ continue;
+ g_hash_table_insert (method_slots, GUINT_TO_POINTER (method->slot), prop);
+ }
- l = g_slist_prepend (l, mono_property_get_object (domain, klass, prop));
+ l = g_slist_prepend (l, mono_property_get_object (domain, startklass, prop));
len++;
}
if ((!(bflags & BFLAGS_DeclaredOnly) && (klass = klass->parent)))
ves_icall_MonoType_GetEvent (MonoReflectionType *type, MonoString *name, guint32 bflags)
{
MonoDomain *domain;
- MonoClass *klass;
+ MonoClass *klass, *startklass;
gint i;
MonoEvent *event;
MonoMethod *method;
MONO_ARCH_SAVE_REGS;
event_name = mono_string_to_utf8 (name);
- klass = mono_class_from_mono_type (type->type);
+ klass = startklass = mono_class_from_mono_type (type->type);
domain = mono_object_domain (type);
handle_parent:
}
g_free (event_name);
- return mono_event_get_object (domain, klass, event);
+ return mono_event_get_object (domain, startklass, event);
}
if (!(bflags & BFLAGS_DeclaredOnly) && (klass = klass->parent))
MONO_ARCH_SAVE_REGS;
if (!(method->flags & METHOD_ATTRIBUTE_VIRTUAL) ||
- method->klass->flags & TYPE_ATTRIBUTE_INTERFACE ||
- method->flags & METHOD_ATTRIBUTE_NEW_SLOT)
+ MONO_CLASS_IS_INTERFACE (method->klass) ||
+ method->flags & METHOD_ATTRIBUTE_NEW_SLOT)
return m;
if (method->klass == NULL || (klass = method->klass->parent) == NULL)
return m;
+ if (klass->generic_inst)
+ klass = mono_class_from_mono_type (klass->generic_inst->generic_type);
+
while (result == NULL && klass != NULL && (klass->vtable_size > method->slot))
{
result = klass->vtable [method->slot];
}
static void
-ves_icall_System_Char_GetDataTablePointers (guint8 **category_data, guint16 **numeric_data,
+ves_icall_System_Char_GetDataTablePointers (guint8 **category_data, guint8 **numeric_data,
gdouble **numeric_data_values, guint16 **to_lower_data_low,
guint16 **to_lower_data_high, guint16 **to_upper_data_low,
guint16 **to_upper_data_high)
static const IcallEntry char_icalls [] = {
{"GetDataTablePointers", ves_icall_System_Char_GetDataTablePointers},
- {"GetNumericValue", ves_icall_System_Char_GetNumericValue},
- {"GetUnicodeCategory", ves_icall_System_Char_GetUnicodeCategory},
- {"IsControl", ves_icall_System_Char_IsControl},
- {"IsLetter", ves_icall_System_Char_IsLetter},
- {"IsLower", ves_icall_System_Char_IsLower},
- {"IsNumber", ves_icall_System_Char_IsNumber},
- {"IsPunctuation", ves_icall_System_Char_IsPunctuation},
- {"IsSurrogate", ves_icall_System_Char_IsSurrogate},
- {"IsSymbol", ves_icall_System_Char_IsSymbol},
- {"IsUpper", ves_icall_System_Char_IsUpper},
- {"ToLower", ves_icall_System_Char_ToLower},
- {"ToUpper", ves_icall_System_Char_ToUpper}
};
static const IcallEntry defaultconf_icalls [] = {
{"GetProcess_internal(int)", ves_icall_System_Diagnostics_Process_GetProcess_internal},
{"GetProcesses_internal()", ves_icall_System_Diagnostics_Process_GetProcesses_internal},
{"GetWorkingSet_internal(intptr,int&,int&)", ves_icall_System_Diagnostics_Process_GetWorkingSet_internal},
+ {"Kill_internal", ves_icall_System_Diagnostics_Process_Kill_internal},
{"ProcessName_internal(intptr)", ves_icall_System_Diagnostics_Process_ProcessName_internal},
{"Process_free_internal(intptr)", ves_icall_System_Diagnostics_Process_Process_free_internal},
{"SetWorkingSet_internal(intptr,int,int,bool)", ves_icall_System_Diagnostics_Process_SetWorkingSet_internal},
{"get_NewLine", ves_icall_System_Environment_get_NewLine},
{"get_Platform", ves_icall_System_Environment_get_Platform},
{"get_TickCount", ves_icall_System_Environment_get_TickCount},
+ {"get_UserName", ves_icall_System_Environment_get_UserName},
{"internalGetGacPath", ves_icall_System_Environment_GetGacPath},
{"set_ExitCode", mono_environment_exitcode_set}
};
static const IcallEntry cultureinfo_icalls [] = {
{"construct_compareinfo(object,string)", ves_icall_System_Globalization_CompareInfo_construct_compareinfo},
- {"construct_internal_locale(string)", ves_icall_System_Globalization_CultureInfo_construct_internal_locale}
+ {"construct_datetime_format", ves_icall_System_Globalization_CultureInfo_construct_datetime_format},
+ {"construct_internal_locale(string)", ves_icall_System_Globalization_CultureInfo_construct_internal_locale},
+ {"construct_internal_locale_from_current_locale", ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_current_locale},
+ {"construct_internal_locale_from_lcid", ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_lcid},
+ {"construct_internal_locale_from_name", ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_name},
+ {"construct_internal_locale_from_specific_name", ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_specific_name},
+ {"construct_number_format", ves_icall_System_Globalization_CultureInfo_construct_number_format},
+ {"internal_get_cultures", ves_icall_System_Globalization_CultureInfo_internal_get_cultures},
+ {"internal_is_lcid_neutral", ves_icall_System_Globalization_CultureInfo_internal_is_lcid_neutral}
};
static const IcallEntry compareinfo_icalls [] = {
};
static const IcallEntry monoio_icalls [] = {
+ {"BeginRead", ves_icall_System_IO_MonoIO_BeginRead },
+ {"BeginWrite", ves_icall_System_IO_MonoIO_BeginWrite },
{"Close(intptr,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_Close},
{"CopyFile(string,string,bool,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_CopyFile},
{"CreateDirectory(string,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_CreateDirectory},
{"GetFileStat(string,System.IO.MonoIOStat&,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_GetFileStat},
{"GetFileType(intptr,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_GetFileType},
{"GetLength(intptr,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_GetLength},
+ {"GetSupportsAsync", ves_icall_System_IO_MonoIO_GetSupportsAsync},
{"GetTempPath(string&)", ves_icall_System_IO_MonoIO_GetTempPath},
{"MoveFile(string,string,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_MoveFile},
- {"Open(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_Open},
+ {"Open(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,bool,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_Open},
{"Read(intptr,byte[],int,int,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_Read},
{"RemoveDirectory(string,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_RemoveDirectory},
{"Seek(intptr,long,System.IO.SeekOrigin,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_Seek},
{"GetEvents_internal", ves_icall_Type_GetEvents_internal},
{"GetField", ves_icall_Type_GetField},
{"GetFields_internal", ves_icall_Type_GetFields_internal},
+ {"GetGenericArguments", ves_icall_MonoType_GetGenericArguments},
{"GetInterfaces", ves_icall_Type_GetInterfaces},
{"GetMethodsByName", ves_icall_Type_GetMethodsByName},
{"GetNestedType", ves_icall_Type_GetNestedType},
{"GetCurrentMethod", ves_icall_GetCurrentMethod}
};
-static const IcallEntry methodinfo_icalls [] = {
- {"BindGenericParameters", mono_reflection_bind_generic_method_parameters},
- {"get_IsGenericMethodDefinition", ves_icall_MethodInfo_get_IsGenericMethodDefinition}
-};
-
static const IcallEntry module_icalls [] = {
{"Close", ves_icall_System_Reflection_Module_Close},
{"GetGlobalType", ves_icall_System_Reflection_Module_GetGlobalType},
};
static const IcallEntry monocmethod_icalls [] = {
- {"InternalInvoke", ves_icall_InternalInvoke}
+ {"GetGenericMethodDefinition_impl", ves_icall_MonoMethod_GetGenericMethodDefinition},
+ {"InternalInvoke", ves_icall_InternalInvoke},
+ {"get_Mono_IsInflatedMethod", ves_icall_MonoMethod_get_Mono_IsInflatedMethod}
};
static const IcallEntry monoeventinfo_icalls [] = {
static const IcallEntry monogenericinst_icalls [] = {
{"GetConstructors_internal", ves_icall_MonoGenericInst_GetConstructors},
+ {"GetEvents_internal", ves_icall_MonoGenericInst_GetEvents},
{"GetFields_internal", ves_icall_MonoGenericInst_GetFields},
{"GetInterfaces_internal", ves_icall_MonoGenericInst_GetInterfaces},
{"GetMethods_internal", ves_icall_MonoGenericInst_GetMethods},
- {"GetNestedTypes_internal", ves_icall_MonoGenericInst_GetNestedTypes},
{"GetParentType", ves_icall_MonoGenericInst_GetParentType},
{"GetProperties_internal", ves_icall_MonoGenericInst_GetProperties},
{"initialize", mono_reflection_generic_inst_initialize}
};
-static const IcallEntry monogenericparam_icalls [] = {
- {"initialize", ves_icall_MonoGenericParam_initialize}
+static const IcallEntry generictypeparambuilder_icalls [] = {
+ {"initialize", mono_reflection_initialize_generic_parameter}
};
static const IcallEntry monomethod_icalls [] = {
+ {"BindGenericParameters", mono_reflection_bind_generic_method_parameters},
{"GetGenericArguments", ves_icall_MonoMethod_GetGenericArguments},
+ {"GetGenericMethodDefinition_impl", ves_icall_MonoMethod_GetGenericMethodDefinition},
{"InternalInvoke", ves_icall_InternalInvoke},
+ {"get_HasGenericParameters", ves_icall_MonoMethod_get_HasGenericParameters},
+ {"get_IsGenericMethodDefinition", ves_icall_MonoMethod_get_IsGenericMethodDefinition},
+ {"get_Mono_IsInflatedMethod", ves_icall_MonoMethod_get_Mono_IsInflatedMethod},
{"get_base_definition", ves_icall_MonoMethod_get_base_definition}
};
};
static const IcallEntry methodbuilder_icalls [] = {
- {"define_generic_parameter", ves_icall_MethodBuilder_define_generic_parameter}
+ {"BindGenericParameters", mono_reflection_bind_generic_method_parameters}
};
static const IcallEntry modulebuilder_icalls [] = {
static const IcallEntry typebuilder_icalls [] = {
{"create_internal_class", mono_reflection_create_internal_class},
{"create_runtime_class", mono_reflection_create_runtime_class},
- {"define_generic_parameter", ves_icall_TypeBuilder_define_generic_parameter},
{"get_IsGenericParameter", ves_icall_TypeBuilder_get_IsGenericParameter},
+ {"get_event_info", mono_reflection_event_builder_get_event_info},
{"setup_generic_class", mono_reflection_setup_generic_class},
{"setup_internal_class", mono_reflection_setup_internal_class}
};
{".ctor(sbyte*,int,int,System.Text.Encoding)", ves_icall_System_String_ctor_encoding},
{"GetHashCode", ves_icall_System_String_GetHashCode},
{"InternalAllocateStr", ves_icall_System_String_InternalAllocateStr},
- {"InternalCompare(string,int,string,int,int,int)", ves_icall_System_String_InternalCompareStr_N},
{"InternalCopyTo", ves_icall_System_String_InternalCopyTo},
- {"InternalEquals", ves_icall_System_String_InternalEquals},
- {"InternalIndexOf(char,int,int)", ves_icall_System_String_InternalIndexOf_Char},
- {"InternalIndexOf(string,int,int)", ves_icall_System_String_InternalIndexOf_Str},
{"InternalIndexOfAny", ves_icall_System_String_InternalIndexOfAny},
{"InternalInsert", ves_icall_System_String_InternalInsert},
{"InternalIntern", ves_icall_System_String_InternalIntern},
{"InternalIsInterned", ves_icall_System_String_InternalIsInterned},
{"InternalJoin", ves_icall_System_String_InternalJoin},
- {"InternalLastIndexOf(char,int,int)", ves_icall_System_String_InternalLastIndexOf_Char},
- {"InternalLastIndexOf(string,int,int)", ves_icall_System_String_InternalLastIndexOf_Str},
{"InternalLastIndexOfAny", ves_icall_System_String_InternalLastIndexOfAny},
{"InternalPad", ves_icall_System_String_InternalPad},
{"InternalRemove", ves_icall_System_String_InternalRemove},
{"InternalReplace(char,char)", ves_icall_System_String_InternalReplace_Char},
- {"InternalReplace(string,string)", ves_icall_System_String_InternalReplace_Str},
{"InternalReplace(string,string,System.Globalization.CompareInfo)", ves_icall_System_String_InternalReplace_Str_Comp},
{"InternalSplit", ves_icall_System_String_InternalSplit},
{"InternalStrcpy(string,int,string)", ves_icall_System_String_InternalStrcpy_Str},
{"InternalStrcpy(string,int,string,int,int)", ves_icall_System_String_InternalStrcpy_StrN},
- {"InternalToLower", ves_icall_System_String_InternalToLower},
{"InternalToLower(System.Globalization.CultureInfo)", ves_icall_System_String_InternalToLower_Comp},
- {"InternalToUpper", ves_icall_System_String_InternalToUpper},
{"InternalToUpper(System.Globalization.CultureInfo)", ves_icall_System_String_InternalToUpper_Comp},
{"InternalTrim", ves_icall_System_String_InternalTrim},
{"get_Chars", ves_icall_System_String_get_Chars}
};
static const IcallEntry threadpool_icalls [] = {
+ {"BindHandleInternal", ves_icall_System_Threading_ThreadPool_BindHandle},
{"GetAvailableThreads", ves_icall_System_Threading_ThreadPool_GetAvailableThreads},
{"GetMaxThreads", ves_icall_System_Threading_ThreadPool_GetMaxThreads}
};
static const IcallEntry type_icalls [] = {
{"BindGenericParameters", ves_icall_Type_BindGenericParameters},
{"Equals", ves_icall_type_Equals},
- {"GetGenericArguments", ves_icall_Type_GetGenericArguments},
{"GetGenericParameterPosition", ves_icall_Type_GetGenericParameterPosition},
{"GetGenericTypeDefinition_impl", ves_icall_Type_GetGenericTypeDefinition_impl},
{"GetInterfaceMapData", ves_icall_Type_GetInterfaceMapData},
/* keep the entries all sorted */
static const IcallMap icall_entries [] = {
- {"System.Activation", activator_icalls, G_N_ELEMENTS (activator_icalls)},
+ {"System.Activator", activator_icalls, G_N_ELEMENTS (activator_icalls)},
{"System.AppDomain", appdomain_icalls, G_N_ELEMENTS (appdomain_icalls)},
{"System.AppDomainSetup", appdomainsetup_icalls, G_N_ELEMENTS (appdomainsetup_icalls)},
{"System.ArgIterator", argiterator_icalls, G_N_ELEMENTS (argiterator_icalls)},
{"System.Reflection.Emit.AssemblyBuilder", assemblybuilder_icalls, G_N_ELEMENTS (assemblybuilder_icalls)},
{"System.Reflection.Emit.CustomAttributeBuilder", customattrbuilder_icalls, G_N_ELEMENTS (customattrbuilder_icalls)},
{"System.Reflection.Emit.DynamicMethod", dynamicmethod_icalls, G_N_ELEMENTS (dynamicmethod_icalls)},
+ {"System.Reflection.Emit.GenericTypeParameterBuilder", generictypeparambuilder_icalls, G_N_ELEMENTS (generictypeparambuilder_icalls)},
{"System.Reflection.Emit.MethodBuilder", methodbuilder_icalls, G_N_ELEMENTS (methodbuilder_icalls)},
{"System.Reflection.Emit.ModuleBuilder", modulebuilder_icalls, G_N_ELEMENTS (modulebuilder_icalls)},
{"System.Reflection.Emit.SignatureHelper", signaturehelper_icalls, G_N_ELEMENTS (signaturehelper_icalls)},
{"System.Reflection.Emit.TypeBuilder", typebuilder_icalls, G_N_ELEMENTS (typebuilder_icalls)},
{"System.Reflection.FieldInfo", fieldinfo_icalls, G_N_ELEMENTS (fieldinfo_icalls)},
{"System.Reflection.MethodBase", methodbase_icalls, G_N_ELEMENTS (methodbase_icalls)},
- {"System.Reflection.MethodInfo", methodinfo_icalls, G_N_ELEMENTS (methodinfo_icalls)},
{"System.Reflection.Module", module_icalls, G_N_ELEMENTS (module_icalls)},
{"System.Reflection.MonoCMethod", monocmethod_icalls, G_N_ELEMENTS (monocmethod_icalls)},
{"System.Reflection.MonoEventInfo", monoeventinfo_icalls, G_N_ELEMENTS (monoeventinfo_icalls)},
{"System.Reflection.MonoField", monofield_icalls, G_N_ELEMENTS (monofield_icalls)},
{"System.Reflection.MonoGenericInst", monogenericinst_icalls, G_N_ELEMENTS (monogenericinst_icalls)},
- {"System.Reflection.MonoGenericParam", monogenericparam_icalls, G_N_ELEMENTS (monogenericparam_icalls)},
{"System.Reflection.MonoMethod", monomethod_icalls, G_N_ELEMENTS (monomethod_icalls)},
{"System.Reflection.MonoMethodInfo", monomethodinfo_icalls, G_N_ELEMENTS (monomethodinfo_icalls)},
{"System.Reflection.MonoPropertyInfo", monopropertyinfo_icalls, G_N_ELEMENTS (monopropertyinfo_icalls)},