{
MONO_ARCH_SAVE_REGS;
- return mono_image_create_token (mb->dynamic_image, obj, TRUE);
+ return mono_image_create_token (mb->dynamic_image, obj);
}
static gint32
return FALSE;
}
-static void
-ves_icall_EnumBuilder_setup_enum_type (MonoReflectionType *enumtype,
- MonoReflectionType *t)
-{
- enumtype->type = t->type;
-}
-
static MonoReflectionType*
ves_icall_MonoGenericInst_GetParentType (MonoReflectionGenericInst *type)
{
res = mono_array_new (domain, mono_defaults.monotype_class, count);
for (i = 0; i < count; i++) {
- MonoGenericParam *param = &mn->gen_params [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,
if (mono_field_is_deleted (field))
continue;
mono_array_set (info->names, gpointer, j, mono_string_new (domain, field->name));
-
- if (!field->data) {
+ if (!field->def_value) {
+ field->def_value = g_new0 (MonoConstant, 1);
crow = mono_metadata_get_constant_index (enumc->image, MONO_TOKEN_FIELD_DEF | (i+enumc->field.first+1), crow + 1);
- field->def_type = mono_metadata_decode_row_col (&enumc->image->tables [MONO_TABLE_CONSTANT], crow-1, MONO_CONSTANT_TYPE);
+ field->def_value->type = mono_metadata_decode_row_col (&enumc->image->tables [MONO_TABLE_CONSTANT], crow-1, MONO_CONSTANT_TYPE);
crow = mono_metadata_decode_row_col (&enumc->image->tables [MONO_TABLE_CONSTANT], crow-1, MONO_CONSTANT_VALUE);
- field->data = (gpointer)mono_metadata_blob_heap (enumc->image, crow);
+ field->def_value->value = (gpointer)mono_metadata_blob_heap (enumc->image, crow);
}
- p = field->data;
+ p = field->def_value->value;
len = mono_metadata_decode_blob_size (p, &p);
switch (enumc->enum_basetype->type) {
case MONO_TYPE_U1:
return mono_method_get_object (mono_domain_get (), m, NULL);
}
-static MonoReflectionMethod*
-ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternal (MonoMethod *method)
-{
- return mono_method_get_object (mono_domain_get (), method, NULL);
-}
-
static MonoReflectionAssembly*
ves_icall_System_Reflection_Assembly_GetExecutingAssembly (void)
{
}
static MonoString *
-ves_icall_System_MonoType_getFullName (MonoReflectionType *object, gboolean full_name)
+ves_icall_System_MonoType_getFullName (MonoReflectionType *object)
{
MonoDomain *domain = mono_object_domain (object);
MonoString *res;
MONO_ARCH_SAVE_REGS;
- if (full_name)
- name = mono_type_get_full_name (object->type);
- else
- name = mono_type_get_name (object->type);
+ name = mono_type_get_name (object->type);
res = mono_string_new (domain, name);
g_free (name);
t1 += 60;
tt1 = *localtime (&t1);
} while (gmt_offset (&tt1, t1) == gmtoff);
- t1+=gmtoff;
+
strftime (tzone, sizeof (tzone), "%Z", &tt);
/* Write data, if we're already in daylight saving, we're done. */
MONO_ARCH_SAVE_REGS;
- path = g_build_path (G_DIR_SEPARATOR_S, mono_get_config_dir (), "mono", mono_get_framework_version (), "machine.config", NULL);
+ path = g_build_path (G_DIR_SEPARATOR_S, mono_get_config_dir (), "mono", "machine.config", NULL);
#if defined (PLATFORM_WIN32)
/* Avoid mixing '/' and '\\' */
{"SetData", ves_icall_System_AppDomain_SetData},
{"createDomain", ves_icall_System_AppDomain_createDomain},
{"getCurDomain", ves_icall_System_AppDomain_getCurDomain},
- {"getDomainByID", ves_icall_System_AppDomain_getDomainByID},
{"getFriendlyName", ves_icall_System_AppDomain_getFriendlyName},
{"getSetup", ves_icall_System_AppDomain_getSetup}
};
};
static const IcallEntry methodbase_icalls [] = {
- {"GetCurrentMethod", ves_icall_GetCurrentMethod},
- {"GetMethodFromHandleInternal", ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternal}
+ {"GetCurrentMethod", ves_icall_GetCurrentMethod}
};
static const IcallEntry module_icalls [] = {
{"setup_internal_class", mono_reflection_setup_internal_class}
};
-static const IcallEntry enumbuilder_icalls [] = {
- {"setup_enum_type", ves_icall_EnumBuilder_setup_enum_type}
-};
-
static const IcallEntry runtimehelpers_icalls [] = {
{"GetObjectValue", ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_GetObjectValue},
- /* REMOVEME: no longer needed, just so we dont break things when not needed */
{"GetOffsetToStringData", ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_GetOffsetToStringData},
{"InitializeArray", ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_InitializeArray},
- {"RunClassConstructor", ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor},
- {"get_OffsetToStringData", ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_GetOffsetToStringData}
+ {"RunClassConstructor", ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor}
};
static const IcallEntry gchandle_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.EnumBuilder", enumbuilder_icalls, G_N_ELEMENTS (enumbuilder_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)},
};
static GHashTable *icall_hash = NULL;
-static GHashTable *jit_icall_hash_name = NULL;
-static GHashTable *jit_icall_hash_addr = NULL;
void
mono_init_icall (void)
return NULL;
}
-static MonoType*
-type_from_typename (char *typename)
-{
- MonoClass *klass;
-
- if (!strcmp (typename, "int"))
- klass = mono_defaults.int_class;
- else if (!strcmp (typename, "ptr"))
- klass = mono_defaults.int_class;
- else if (!strcmp (typename, "void"))
- klass = mono_defaults.void_class;
- else if (!strcmp (typename, "int32"))
- klass = mono_defaults.int32_class;
- else if (!strcmp (typename, "uint32"))
- klass = mono_defaults.uint32_class;
- else if (!strcmp (typename, "long"))
- klass = mono_defaults.int64_class;
- else if (!strcmp (typename, "ulong"))
- klass = mono_defaults.uint64_class;
- else if (!strcmp (typename, "float"))
- klass = mono_defaults.single_class;
- else if (!strcmp (typename, "double"))
- klass = mono_defaults.double_class;
- else if (!strcmp (typename, "object"))
- klass = mono_defaults.object_class;
- else if (!strcmp (typename, "obj"))
- klass = mono_defaults.object_class;
- else {
- g_error (typename);
- g_assert_not_reached ();
- }
- return &klass->byval_arg;
-}
-
-MonoMethodSignature*
-mono_create_icall_signature (const char *sigstr)
-{
- gchar **parts;
- int i, len;
- gchar **tmp;
- MonoMethodSignature *res;
-
- mono_loader_lock ();
- res = g_hash_table_lookup (mono_defaults.corlib->helper_signatures, sigstr);
- if (res) {
- mono_loader_unlock ();
- return res;
- }
-
- parts = g_strsplit (sigstr, " ", 256);
-
- tmp = parts;
- len = 0;
- while (*tmp) {
- len ++;
- tmp ++;
- }
-
- res = mono_metadata_signature_alloc (mono_defaults.corlib, len - 1);
- res->pinvoke = 1;
-
-#ifdef PLATFORM_WIN32
- /*
- * Under windows, the default pinvoke calling convention is STDCALL but
- * we need CDECL.
- */
- res->call_convention = MONO_CALL_C;
-#endif
-
- res->ret = type_from_typename (parts [0]);
- for (i = 1; i < len; ++i) {
- res->params [i - 1] = type_from_typename (parts [i]);
- }
-
- g_strfreev (parts);
-
- g_hash_table_insert (mono_defaults.corlib->helper_signatures, (gpointer)sigstr, res);
-
- mono_loader_unlock ();
-
- return res;
-}
-
-MonoJitICallInfo *
-mono_find_jit_icall_by_name (const char *name)
-{
- MonoJitICallInfo *info;
- g_assert (jit_icall_hash_name);
-
- mono_loader_lock ();
- info = g_hash_table_lookup (jit_icall_hash_name, name);
- mono_loader_unlock ();
- return info;
-}
-
-MonoJitICallInfo *
-mono_find_jit_icall_by_addr (gconstpointer addr)
-{
- MonoJitICallInfo *info;
- g_assert (jit_icall_hash_addr);
-
- mono_loader_lock ();
- info = g_hash_table_lookup (jit_icall_hash_addr, (gpointer)addr);
- mono_loader_unlock ();
-
- return info;
-}
-
-void
-mono_register_jit_icall_wrapper (MonoJitICallInfo *info, gconstpointer wrapper)
-{
- mono_loader_lock ();
- g_hash_table_insert (jit_icall_hash_addr, (gpointer)info->wrapper, info);
- mono_loader_unlock ();
-}
-
-MonoJitICallInfo *
-mono_register_jit_icall (gconstpointer func, const char *name, MonoMethodSignature *sig, gboolean is_save)
-{
- MonoJitICallInfo *info;
-
- g_assert (func);
- g_assert (name);
-
- mono_loader_lock ();
-
- if (!jit_icall_hash_name) {
- jit_icall_hash_name = g_hash_table_new (g_str_hash, g_str_equal);
- jit_icall_hash_addr = g_hash_table_new (NULL, NULL);
- }
-
- if (g_hash_table_lookup (jit_icall_hash_name, name)) {
- g_warning ("jit icall already defined \"%s\"\n", name);
- g_assert_not_reached ();
- }
-
- info = g_new (MonoJitICallInfo, 1);
-
- info->name = name;
- info->func = func;
- info->sig = sig;
-
- if (is_save) {
- info->wrapper = func;
- } else {
- info->wrapper = NULL;
- }
-
- g_hash_table_insert (jit_icall_hash_name, (gpointer)info->name, info);
- g_hash_table_insert (jit_icall_hash_addr, (gpointer)func, info);
-
- mono_loader_unlock ();
- return info;
-}