From 586b94d63e8e3c37eea734f6de6c6899a7d6478b Mon Sep 17 00:00:00 2001 From: Rodrigo Kumpera Date: Wed, 14 Nov 2012 14:36:07 -0500 Subject: [PATCH] Kill the SL profile and get Mobile on its place instead. * socket-io.c: * threadpool.c: * domain-internals.h: The mobile profile uses System.dll for sockets. --- mono/metadata/domain-internals.h | 1 - mono/metadata/socket-io.c | 40 ++++++++++------------------------------ mono/metadata/threadpool.c | 21 +-------------------- 3 files changed, 11 insertions(+), 51 deletions(-) diff --git a/mono/metadata/domain-internals.h b/mono/metadata/domain-internals.h index b9930878c3e..ccf2db538da 100644 --- a/mono/metadata/domain-internals.h +++ b/mono/metadata/domain-internals.h @@ -373,7 +373,6 @@ struct _MonoDomain { /* Used by threadpool.c */ MonoImage *system_image; - MonoImage *system_net_dll; MonoClass *corlib_asyncresult_class; MonoClass *socket_class; MonoClass *ad_unloaded_ex_class; diff --git a/mono/metadata/socket-io.c b/mono/metadata/socket-io.c index c71fd74a328..59a3b619ab2 100644 --- a/mono/metadata/socket-io.c +++ b/mono/metadata/socket-io.c @@ -50,6 +50,7 @@ #include #include #include +#include #include #ifdef HAVE_SYS_TIME_H @@ -664,43 +665,22 @@ static gint32 convert_sockopt_level_and_name(MonoSocketOptionLevel mono_level, static MonoImage *get_socket_assembly (void) { - static const char *version = NULL; - static gboolean moonlight; MonoDomain *domain = mono_domain_get (); - if (version == NULL) { - version = mono_get_runtime_info ()->framework_version; - moonlight = !strcmp (version, "2.1"); - } - if (domain->socket_assembly == NULL) { MonoImage *socket_assembly; - if (moonlight) { - socket_assembly = mono_image_loaded ("System.Net"); - if (!socket_assembly) { - MonoAssembly *sa = mono_assembly_open ("System.Net.dll", NULL); - - if (!sa) { - g_assert_not_reached (); - } else { - socket_assembly = mono_assembly_get_image (sa); - } - } - } else { - socket_assembly = mono_image_loaded ("System"); - if (!socket_assembly) { - MonoAssembly *sa = mono_assembly_open ("System.dll", NULL); - - if (!sa) { - g_assert_not_reached (); - } else { - socket_assembly = mono_assembly_get_image (sa); - } + socket_assembly = mono_image_loaded ("System"); + if (!socket_assembly) { + MonoAssembly *sa = mono_assembly_open ("System.dll", NULL); + + if (!sa) { + g_assert_not_reached (); + } else { + socket_assembly = mono_assembly_get_image (sa); } } - - domain->socket_assembly = socket_assembly; + mono_atomic_store_release (&domain->socket_assembly, socket_assembly); } return domain->socket_assembly; diff --git a/mono/metadata/threadpool.c b/mono/metadata/threadpool.c index 3adbfcb4e04..85ae229e37a 100644 --- a/mono/metadata/threadpool.c +++ b/mono/metadata/threadpool.c @@ -215,30 +215,11 @@ is_corlib_type (MonoDomain *domain, MonoClass *klass) /* * Note that we call it is_socket_type() where 'socket' refers to the image * that contains the System.Net.Sockets.Socket type. - * For moonlight there is a System.Net.Sockets.Socket class in both System.dll and System.Net.dll. */ static gboolean is_socket_type (MonoDomain *domain, MonoClass *klass) { - static const char *version = NULL; - static gboolean moonlight; - - if (is_system_type (domain, klass)) - return TRUE; - - /* If moonlight, check if the type is in System.Net.dll too */ - if (version == NULL) { - version = mono_get_runtime_info ()->framework_version; - moonlight = !strcmp (version, "2.1"); - } - - if (!moonlight) - return FALSE; - - if (domain->system_net_dll == NULL) - domain->system_net_dll = mono_image_loaded ("System.Net"); - - return klass->image == domain->system_net_dll; + return is_system_type (domain, klass); } #define check_type_cached(domain, ASSEMBLY, _class, _namespace, _name, loc) do { \ -- 2.11.4.GIT