diff options
author | Ryan Lucia <rylucia@microsoft.com> | 2019-08-09 18:44:50 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-09 18:44:50 +0300 |
commit | a1bb37cd52a15184fc6b5da4d680249132421c78 (patch) | |
tree | ca500cc65b9a542e09f50b4f86bc9327bafca53b /tools | |
parent | 0970996f751428ffe8d84ba597e529101a541470 (diff) |
[netcore] Make mono_assembly_request_prepare take an ALC (#16061)
* Make mono_assembly_request_prepare take an ALC
* Typo
* Fix pedump
* Use default ALC
* Make v1 preload hook external-only
* Convert pedump and monodis
* fixup: use default ALC in netcore preload hook
trusted platform assemblies should be loaded into the default ALC
Diffstat (limited to 'tools')
-rw-r--r-- | tools/pedump/pedump.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/tools/pedump/pedump.c b/tools/pedump/pedump.c index 8414ae36e20..03557bec5eb 100644 --- a/tools/pedump/pedump.c +++ b/tools/pedump/pedump.c @@ -46,7 +46,7 @@ gboolean verify_partial_md = FALSE; static char *assembly_directory[2]; -static MonoAssembly *pedump_preload (MonoAssemblyName *aname, gchar **assemblies_path, gpointer user_data); +static MonoAssembly *pedump_preload (MonoAssemblyLoadContext *alc, MonoAssemblyName *aname, char **assemblies_path, gboolean refonly, gpointer user_data, MonoError *error); static void pedump_assembly_load_hook (MonoAssemblyLoadContext *alc, MonoAssembly *assembly, gpointer user_data, MonoError *error); static MonoAssembly *pedump_assembly_search_hook (MonoAssemblyLoadContext *alc, MonoAssembly *requesting, MonoAssemblyName *aname, gboolean refonly, gboolean postload, gpointer user_data, MonoError *error); @@ -472,7 +472,7 @@ verify_image_file (const char *fname) mono_init_version ("pedump", image->version); - mono_install_assembly_preload_hook (pedump_preload, GUINT_TO_POINTER (FALSE)); + mono_install_assembly_preload_hook_v2 (pedump_preload, GUINT_TO_POINTER (FALSE), FALSE); mono_icall_init (); mono_marshal_init (); @@ -483,7 +483,7 @@ verify_image_file (const char *fname) mono_init_version ("pedump", NULL); - mono_install_assembly_preload_hook (pedump_preload, GUINT_TO_POINTER (FALSE)); + mono_install_assembly_preload_hook_v2 (pedump_preload, GUINT_TO_POINTER (FALSE), FALSE); mono_icall_init (); mono_marshal_init (); @@ -624,15 +624,16 @@ real_load (gchar **search_path, const gchar *culture, const gchar *name, const M * Try to load referenced assemblies from assemblies_path. */ static MonoAssembly * -pedump_preload (MonoAssemblyName *aname, - gchar **assemblies_path, - gpointer user_data) +pedump_preload (MonoAssemblyLoadContext *alc, + MonoAssemblyName *aname, + gchar **assemblies_path, + gboolean refonly, + gpointer user_data, + MonoError *error) { MonoAssembly *result = NULL; - gboolean refonly = GPOINTER_TO_UINT (user_data); MonoAssemblyOpenRequest req; - mono_assembly_request_prepare (&req.request, sizeof (req), refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT); - + mono_assembly_request_prepare (&req.request, sizeof (req), refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT, alc); if (assemblies_path && assemblies_path [0] != NULL) { result = real_load (assemblies_path, aname->culture, aname->name, &req); @@ -797,7 +798,7 @@ main (int argc, char *argv []) mono_verifier_set_mode (verifier_mode); - mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT); + mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ())); assembly = mono_assembly_request_open (file, &req, NULL); /*fake an assembly for netmodules so the verifier works*/ if (!assembly && (image = mono_image_open (file, &status)) && image->tables [MONO_TABLE_ASSEMBLY].rows == 0) { |