Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorRyan Lucia <rylucia@microsoft.com>2019-08-09 18:44:50 +0300
committerGitHub <noreply@github.com>2019-08-09 18:44:50 +0300
commita1bb37cd52a15184fc6b5da4d680249132421c78 (patch)
treeca500cc65b9a542e09f50b4f86bc9327bafca53b /tools
parent0970996f751428ffe8d84ba597e529101a541470 (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.c21
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) {