This commit was manufactured by cvs2svn to create branch 'mono-1-0'.
[mono.git] / mono / metadata / icall.c
index 88450a296f7565b298ead01394d832762b733ba7..7e76bf279d4e6c2d0bb1b30e0aa728ef2eff92d5 100644 (file)
@@ -901,7 +901,7 @@ ves_icall_ModuleBuilder_getToken (MonoReflectionModuleBuilder *mb, MonoObject *o
 {
        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
@@ -1805,13 +1805,6 @@ ves_icall_TypeBuilder_get_IsGenericParameter (MonoReflectionTypeBuilder *tb)
        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)
 {
@@ -2138,7 +2131,7 @@ ves_icall_MonoMethod_GetGenericArguments (MonoReflectionMethod *method)
        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,
@@ -2402,15 +2395,15 @@ ves_icall_get_enum_info (MonoReflectionType *type, MonoEnumInfo *info)
                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:
@@ -3530,12 +3523,6 @@ ves_icall_GetCurrentMethod (void)
        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)
 {
@@ -3596,7 +3583,7 @@ ves_icall_System_Reflection_Assembly_GetCallingAssembly (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;
@@ -3604,10 +3591,7 @@ ves_icall_System_MonoType_getFullName (MonoReflectionType *object, gboolean full
 
        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);
 
@@ -4124,7 +4108,7 @@ ves_icall_System_CurrentTimeZone_GetTimeZoneData (guint32 year, MonoArray **data
                                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. */
@@ -4759,7 +4743,7 @@ ves_icall_System_Configuration_DefaultConfig_get_machine_config_path (void)
 
        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 '\\' */
@@ -5089,7 +5073,6 @@ static const IcallEntry appdomain_icalls [] = {
        {"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}
 };
@@ -5402,8 +5385,7 @@ static const IcallEntry assembly_icalls [] = {
 };
 
 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 [] = {
@@ -5550,17 +5532,11 @@ static const IcallEntry typebuilder_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 [] = {
@@ -5876,7 +5852,6 @@ static const IcallMap icall_entries [] = {
        {"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)},
@@ -5920,8 +5895,6 @@ static const IcallMap icall_entries [] = {
 };
 
 static GHashTable *icall_hash = NULL;
-static GHashTable *jit_icall_hash_name = NULL;
-static GHashTable *jit_icall_hash_addr = NULL;
 
 void
 mono_init_icall (void)
@@ -6096,157 +6069,3 @@ mono_lookup_internal_call (MonoMethod *method)
        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;
-}