X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fimage.c;h=3f4dd249c6d1b189901384dd07c1e8868ac638e9;hb=6223a90aa034622c6fd0b536f0190623e83f3bc5;hp=eb4d686412e586b822e0f064748cc7e7117c2b64;hpb=0568203e32b2ce7a746b1e73f55610b6488f761c;p=mono.git diff --git a/mono/metadata/image.c b/mono/metadata/image.c index eb4d686412e..3f4dd249c6d 100644 --- a/mono/metadata/image.c +++ b/mono/metadata/image.c @@ -803,7 +803,7 @@ mono_image_init (MonoImage *image) class_next_value); image->field_cache = mono_conc_hashtable_new (NULL, NULL); - image->typespec_cache = g_hash_table_new (NULL, NULL); + image->typespec_cache = mono_conc_hashtable_new (NULL, NULL); image->memberref_signatures = g_hash_table_new (NULL, NULL); image->helper_signatures = g_hash_table_new (g_str_hash, g_str_equal); image->method_signatures = g_hash_table_new (NULL, NULL); @@ -1113,6 +1113,11 @@ Right now the list of nugets are the ones that provide the assemblies in $ignore This is to be removed once a proper fix is shipped through nuget. +Please keep this in sync with mcs/tools/xbuild/data/deniedAssembliesList.txt +If any assemblies are added/removed, then this should be regenerated with: + + $ mono tools/nuget-hash-extractor/nuget-hash-extractor.exe nugets guids_for_msbuild > mcs/tools/xbuild/data/deniedAssembliesList.txt + */ typedef enum { @@ -1121,8 +1126,7 @@ typedef enum { SYS_IO_COMPRESSION = 2, //System.IO.Compression SYS_NET_HTTP = 3, //System.Net.Http SYS_TEXT_ENC_CODEPAGES = 4, //System.Text.Encoding.CodePages - SYS_REF_DISP_PROXY = 5, //System.Reflection.DispatchProxy - SYS_VALUE_TUPLE = 6, //System.ValueTuple + SYS_THREADING_OVERLAPPED = 5, //System.Threading.Overlapped } IgnoredAssemblyNames; typedef struct { @@ -1142,8 +1146,7 @@ const char *ignored_assemblies_file_names[] = { "System.IO.Compression.dll", "System.Net.Http.dll", "System.Text.Encoding.CodePages.dll", - "System.Reflection.DispatchProxy.dll", - "System.ValueTuple.dll" + "System.Threading.Overlapped.dll" }; #define IGNORED_ASSEMBLY(HASH, NAME, GUID, VER_STR) { .hash = HASH, .assembly_name = NAME, .guid = GUID } @@ -1157,14 +1160,16 @@ static const IgnoredAssembly ignored_assemblies [] = { IGNORED_ASSEMBLY (0x27726A90, SYS_NET_HTTP, "269B562C-CC15-4736-B1B1-68D4A43CAA98", "4.1.0 net46"), IGNORED_ASSEMBLY (0x10CADA75, SYS_NET_HTTP, "EA2EC6DC-51DD-479C-BFC2-E713FB9E7E47", "4.1.1 net46"), IGNORED_ASSEMBLY (0x8437178B, SYS_NET_HTTP, "C0E04D9C-70CF-48A6-A179-FBFD8CE69FD0", "4.3.0 net46"), - IGNORED_ASSEMBLY (0x4A15555E, SYS_REF_DISP_PROXY, "E40AFEB4-CABE-4124-8412-B46AB79C92FD", "4.0.0 net46"), - IGNORED_ASSEMBLY (0xD20D9783, SYS_REF_DISP_PROXY, "2A69F0AD-B86B-40F2-8E4C-5B671E47479F", "4.0.1 netstandard1.3"), - IGNORED_ASSEMBLY (0xA33A7E68, SYS_REF_DISP_PROXY, "D4E8D2DB-BD65-4168-99EA-D2C1BDEBF9CC", "4.3.0 netstandard1.3"), + IGNORED_ASSEMBLY (0xFAFDA422, SYS_NET_HTTP, "817F01C3-4011-477D-890A-98232B85553D", "4.3.1 net46"), + IGNORED_ASSEMBLY (0x472FA630, SYS_NET_HTTP, "09D4A140-061C-4884-9B63-22067E841931", "4.3.2 net46"), IGNORED_ASSEMBLY (0x46A4A1C5, SYS_RT_INTEROP_RUNTIME_INFO, "F13660F8-9D0D-419F-BA4E-315693DD26EA", "4.0.0 net45"), IGNORED_ASSEMBLY (0xD07383BB, SYS_RT_INTEROP_RUNTIME_INFO, "DD91439F-3167-478E-BD2C-BF9C036A1395", "4.3.0 net45"), IGNORED_ASSEMBLY (0x911D9EC3, SYS_TEXT_ENC_CODEPAGES, "C142254F-DEB5-46A7-AE43-6F10320D1D1F", "4.0.1 net46"), IGNORED_ASSEMBLY (0xFA686A38, SYS_TEXT_ENC_CODEPAGES, "FD178CD4-EF4F-44D5-9C3F-812B1E25126B", "4.3.0 net46"), - IGNORED_ASSEMBLY (0x75B4B041, SYS_VALUE_TUPLE, "F81A4140-A898-4E2B-B6E9-55CE78C273EC", "4.3.0 netstandard1.0"), + IGNORED_ASSEMBLY (0xF6D18A2E, SYS_TEXT_ENC_CODEPAGES, "F5CCCBEC-E1AD-4DBB-9B44-9B42C86B94B8", "4.4.0 net461"), + IGNORED_ASSEMBLY (0xAA21986B, SYS_THREADING_OVERLAPPED, "9F5D4F09-787A-458A-BA08-553AA71470F1", "4.0.0 net46"), + IGNORED_ASSEMBLY (0x7D927C2A, SYS_THREADING_OVERLAPPED, "FCBD003B-2BB4-4940-BAEF-63AF520C2336", "4.0.1 net46"), + IGNORED_ASSEMBLY (0x6FE03EE2, SYS_THREADING_OVERLAPPED, "87697E71-D192-4F0B-BAD4-02BBC7793005", "4.3.0 net46") }; @@ -1174,8 +1179,7 @@ const char *ignored_assemblies_names[] = { "System.IO.Compression", "System.Net.Http", "System.Text.Encoding.CodePages", - "System.Reflection.DispatchProxy", - "System.ValueTuple" + "System.Threading.Overlapped" }; #define IGNORED_ASM_VER(NAME, MAJOR, MINOR, BUILD, REVISION) { .assembly_name = NAME, .major = MAJOR, .minor = MINOR, .build = BUILD, .revision = REVISION } @@ -1189,14 +1193,15 @@ static const IgnoredAssemblyVersion ignored_assembly_versions [] = { IGNORED_ASM_VER (SYS_NET_HTTP, 4, 1, 0, 0), IGNORED_ASM_VER (SYS_NET_HTTP, 4, 1, 0, 1), IGNORED_ASM_VER (SYS_NET_HTTP, 4, 1, 1, 0), - IGNORED_ASM_VER (SYS_REF_DISP_PROXY, 4, 0, 0, 0), - IGNORED_ASM_VER (SYS_REF_DISP_PROXY, 4, 0, 1, 0), - IGNORED_ASM_VER (SYS_REF_DISP_PROXY, 4, 0, 2, 0), + IGNORED_ASM_VER (SYS_NET_HTTP, 4, 1, 1, 1), IGNORED_ASM_VER (SYS_RT_INTEROP_RUNTIME_INFO, 4, 0, 0, 0), IGNORED_ASM_VER (SYS_RT_INTEROP_RUNTIME_INFO, 4, 0, 1, 0), IGNORED_ASM_VER (SYS_TEXT_ENC_CODEPAGES, 4, 0, 1, 0), IGNORED_ASM_VER (SYS_TEXT_ENC_CODEPAGES, 4, 0, 2, 0), - IGNORED_ASM_VER (SYS_VALUE_TUPLE, 4, 0, 1, 0), + IGNORED_ASM_VER (SYS_TEXT_ENC_CODEPAGES, 4, 1, 0, 0), + IGNORED_ASM_VER (SYS_THREADING_OVERLAPPED, 4, 0, 0, 0), + IGNORED_ASM_VER (SYS_THREADING_OVERLAPPED, 4, 0, 1, 0), + IGNORED_ASM_VER (SYS_THREADING_OVERLAPPED, 4, 0, 2, 0), }; gboolean @@ -1265,7 +1270,7 @@ do_mono_image_load (MonoImage *image, MonoImageOpenStatus *status, GSList *errors = NULL; GSList *l; - mono_profiler_module_event (image, MONO_PROFILE_START_LOAD); + MONO_PROFILER_RAISE (image_loading, (image)); mono_image_init (image); @@ -1329,7 +1334,7 @@ do_mono_image_load (MonoImage *image, MonoImageOpenStatus *status, load_modules (image); done: - mono_profiler_module_loaded (image, MONO_PROFILE_OK); + MONO_PROFILER_RAISE (image_loaded, (image)); if (status) *status = MONO_IMAGE_OK; @@ -1341,7 +1346,7 @@ invalid_image: g_warning ("Could not load image %s due to %s", image->name, info->message); mono_free_verify_list (errors); } - mono_profiler_module_loaded (image, MONO_PROFILE_FAILED); + MONO_PROFILER_RAISE (image_failed, (image)); mono_image_close (image); return NULL; } @@ -1690,7 +1695,7 @@ mono_image_open_a_lot (const char *fname, MonoImageOpenStatus *status, gboolean } #endif - absfname = mono_path_canonicalize (fname); + absfname = mono_path_resolve_symlinks (fname); /* * The easiest solution would be to do all the loading inside the mutex, @@ -1971,7 +1976,7 @@ mono_image_close_except_pools (MonoImage *image) } #endif - mono_profiler_module_event (image, MONO_PROFILE_START_UNLOAD); + MONO_PROFILER_RAISE (image_unloading, (image)); mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_ASSEMBLY, "Unloading image %s [%p].", image->name, image); @@ -2077,7 +2082,7 @@ mono_image_close_except_pools (MonoImage *image) free_hash (image->pinvoke_scopes); free_hash (image->pinvoke_scope_filenames); free_hash (image->native_func_wrapper_cache); - free_hash (image->typespec_cache); + mono_conc_hashtable_destroy (image->typespec_cache); mono_wrapper_caches_free (&image->wrapper_caches); @@ -2132,7 +2137,7 @@ mono_image_close_except_pools (MonoImage *image) mono_dynamic_image_free ((MonoDynamicImage*)image); } - mono_profiler_module_event (image, MONO_PROFILE_END_UNLOAD); + MONO_PROFILER_RAISE (image_unloaded, (image)); return TRUE; }