/* FIXME: is this call necessary? */
/* FIXME: if it's necessary, can it be refonly instead? */
MonoAssemblyLoadRequest req;
- mono_assembly_request_prepare (&req, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
+ mono_assembly_request_prepare_load (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
+
mono_assembly_request_load_from (img, file, &req, &status);
}
if (assemblies_path && assemblies_path [0] != NULL) {
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_open (&req, refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT, alc);
result = real_load (assemblies_path, aname->culture, aname->name, &req);
}
}
#endif
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_open (&req, refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT, alc);
req.request.predicate = predicate;
req.request.predicate_ud = predicate_ud;
}
#endif
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), asmctx, mono_domain_default_alc (mono_domain_get ()));
+ mono_assembly_request_prepare_open (&req, asmctx, mono_domain_default_alc (mono_domain_get ()));
req.request.predicate = predicate;
req.request.predicate_ud = predicate_ud;
MonoAssembly *result = NULL;
alc = mono_domain_default_alc (domain);
g_assert (alc);
asmctx = MONO_ASMCTX_DEFAULT;
- mono_assembly_request_prepare (&req.request, sizeof (req), asmctx, alc);
+ mono_assembly_request_prepare_byname (&req, asmctx, alc);
req.basedir = NULL;
req.no_postload_search = TRUE;
MonoAssembly *ass;
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), refOnly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_LOADFROM, mono_domain_default_alc (domain));
+ mono_assembly_request_prepare_open (&req, refOnly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_LOADFROM, mono_domain_default_alc (domain));
req.requesting_assembly = requesting_assembly;
ass = mono_assembly_request_open (filename, &req, &status);
MonoImageOpenStatus status;
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), asmctx, alc);
+ mono_assembly_request_prepare_open (&req, asmctx, alc);
req.requesting_assembly = executing_assembly;
ass = mono_assembly_request_open (filename, &req, &status);
if (!ass) {
}
MonoAssemblyLoadRequest req;
- mono_assembly_request_prepare (&req, sizeof (req), refonly? MONO_ASMCTX_REFONLY : MONO_ASMCTX_INDIVIDUAL, alc);
+ mono_assembly_request_prepare_load (&req, refonly? MONO_ASMCTX_REFONLY : MONO_ASMCTX_INDIVIDUAL, alc);
ass = mono_assembly_request_load_from (image, "", &req, &status);
if (!ass) {
MonoAssemblyByNameRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), asmctx, mono_domain_default_alc (domain));
+ mono_assembly_request_prepare_byname (&req, asmctx, mono_domain_default_alc (domain));
req.basedir = basedir;
req.no_postload_search = TRUE;
ass = mono_assembly_request_byname (&aname, &req, &status);
/* FIXME: predicate unused? */
} MonoAssemblyByNameRequest;
-void mono_assembly_request_prepare (MonoAssemblyLoadRequest *req,
- size_t req_size,
- MonoAssemblyContextKind asmctx,
- MonoAssemblyLoadContext *alc);
+void mono_assembly_request_prepare_load (MonoAssemblyLoadRequest *req,
+ MonoAssemblyContextKind asmctx,
+ MonoAssemblyLoadContext *alc);
+
+void mono_assembly_request_prepare_open (MonoAssemblyOpenRequest *req,
+ MonoAssemblyContextKind asmctx,
+ MonoAssemblyLoadContext *alc);
+
+void mono_assembly_request_prepare_byname (MonoAssemblyByNameRequest *req,
+ MonoAssemblyContextKind asmctx,
+ MonoAssemblyLoadContext *alc);
MonoAssembly* mono_assembly_request_open (const char *filename,
const MonoAssemblyOpenRequest *req,
}
/**
- * mono_assembly_request_prepare:
- * \param req the request to be initialized
- * \param req_size the size of the request structure
+ * mono_assembly_request_prepare_load:
+ * \param req the load request to be initialized
* \param asmctx the assembly load context kind
* \param alc the AssemblyLoadContext in netcore
*
- * Initialize an assembly loader request. The passed structure \p req must be
- * of size \p req_size. Its state will be reset and the assembly context kind will be prefilled with \p asmctx.
+ * Initialize an assembly loader request. Its state will be reset and the assembly context kind will be prefilled with \p asmctx.
*/
void
-mono_assembly_request_prepare (MonoAssemblyLoadRequest *req, size_t req_size, MonoAssemblyContextKind asmctx, MonoAssemblyLoadContext *alc)
+mono_assembly_request_prepare_load (MonoAssemblyLoadRequest *req, MonoAssemblyContextKind asmctx, MonoAssemblyLoadContext *alc)
{
- memset (req, 0, req_size);
+ memset (req, 0, sizeof (MonoAssemblyLoadRequest));
req->asmctx = asmctx;
req->alc = alc;
}
+/**
+ * mono_assembly_request_prepare_open:
+ * \param req the open request to be initialized
+ * \param asmctx the assembly load context kind
+ * \param alc the AssemblyLoadContext in netcore
+ *
+ * Initialize an assembly loader request intended to be used for open operations. Its state will be reset and the assembly context kind will be prefilled with \p asmctx.
+ */
+void
+mono_assembly_request_prepare_open (MonoAssemblyOpenRequest *req, MonoAssemblyContextKind asmctx, MonoAssemblyLoadContext *alc)
+{
+ memset (req, 0, sizeof (MonoAssemblyOpenRequest));
+ req->request.asmctx = asmctx;
+ req->request.alc = alc;
+}
+
+/**
+ * mono_assembly_request_prepare_byname:
+ * \param req the byname request to be initialized
+ * \param asmctx the assembly load context kind
+ * \param alc the AssemblyLoadContext in netcore
+ *
+ * Initialize an assembly load by name request. Its state will be reset and the assembly context kind will be prefilled with \p asmctx.
+ */
+void
+mono_assembly_request_prepare_byname (MonoAssemblyByNameRequest *req, MonoAssemblyContextKind asmctx, MonoAssemblyLoadContext *alc)
+{
+ memset (req, 0, sizeof (MonoAssemblyByNameRequest));
+ req->request.asmctx = asmctx;
+ req->request.alc = alc;
+}
+
static MonoAssembly *
load_in_path (const char *basename, const char** search_path, const MonoAssemblyOpenRequest *req, MonoImageOpenStatus *status)
{
/* We use the loaded corlib */
if (!strcmp (aname->name, MONO_ASSEMBLY_CORLIB_NAME)) {
MonoAssemblyByNameRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_byname (&req, MONO_ASMCTX_DEFAULT, alc);
req.requesting_assembly = assm;
req.basedir = assm->basedir;
reference = mono_assembly_request_byname (aname, &req, status);
* example bug-349190.2.cs and who knows how much more code in the wild.
*/
MonoAssemblyByNameRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_byname (&req, MONO_ASMCTX_DEFAULT, alc);
req.requesting_assembly = assm;
reference = mono_assembly_request_byname (aname, &req, status);
if (!reference && assm) {
{
MonoAssembly *reference = NULL;
MonoAssemblyByNameRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_LOADFROM, alc);
+ mono_assembly_request_prepare_byname (&req, MONO_ASMCTX_LOADFROM, alc);
req.requesting_assembly = requesting;
req.basedir = requesting->basedir;
/* Just like default search, but look in the requesting assembly basedir right away */
*/
if (!reference) {
MonoAssemblyByNameRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_alc_domain (alc)));
+ mono_assembly_request_prepare_byname (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_alc_domain (alc)));
req.requesting_assembly = requesting;
reference = mono_assembly_request_byname (aname, &req, status);
}
if (is_default || !is_satellite) {
MonoAssemblyByNameRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_alc_domain (alc)));
+ mono_assembly_request_prepare_byname (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_alc_domain (alc)));
req.requesting_assembly = requesting;
reference = mono_assembly_request_byname (aname, &req, status);
if (reference)
MonoAssembly *res;
MONO_ENTER_GC_UNSAFE;
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req),
+ mono_assembly_request_prepare_open (&req,
refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT,
mono_domain_default_alc (mono_domain_get ()));
res = mono_assembly_request_open (filename, &req, status);
MonoImageOpenStatus new_status = MONO_IMAGE_OK;
MonoAssemblyByNameRequest new_req;
- mono_assembly_request_prepare (&new_req.request, sizeof (new_req), new_asmctx, alc);
+ mono_assembly_request_prepare_byname (&new_req, new_asmctx, alc);
new_req.requesting_assembly = new_requesting;
new_req.basedir = new_basedir;
result_ass = mono_assembly_request_byname (result_name, &new_req, &new_status);
MonoAssembly *new_requesting = NULL;
MonoImageOpenStatus new_status = MONO_IMAGE_OK;
MonoAssemblyByNameRequest new_req;
- mono_assembly_request_prepare (&new_req.request, sizeof (new_req), new_asmctx, alc);
+ mono_assembly_request_prepare_byname (&new_req, new_asmctx, alc);
new_req.requesting_assembly = new_requesting;
new_req.basedir = new_basedir;
// Note: this interacts with mono_image_open_a_lot (). If the path from
MonoAssembly *res;
MONO_ENTER_GC_UNSAFE;
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
res = mono_assembly_request_open (filename, &req, status);
MONO_EXIT_GC_UNSAFE;
return res;
MonoImageOpenStatus def_status;
if (!status)
status = &def_status;
- mono_assembly_request_prepare (&req, sizeof (req), refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
+ mono_assembly_request_prepare_load (&req, refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
res = mono_assembly_request_load_from (image, fname, &req, status);
MONO_EXIT_GC_UNSAFE;
return res;
MonoImageOpenStatus def_status;
if (!status)
status = &def_status;
- mono_assembly_request_prepare (&req, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
+ mono_assembly_request_prepare_load (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
res = mono_assembly_request_load_from (image, fname, &req, status);
MONO_EXIT_GC_UNSAFE;
return res;
return NULL;
else {
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, alc);
MonoAssembly *res = mono_assembly_request_open (fullpath, &req, status);
g_free (fullpath);
return res;
g_free (culture);
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req),
+ mono_assembly_request_prepare_open (&req,
refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT,
mono_domain_default_alc (mono_domain_get ()));
{
MonoAssemblyName *aname;
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
if (corlib) {
/* g_print ("corlib already loaded\n"); */
#endif
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), asmctx, alc);
+ mono_assembly_request_prepare_open (&req, asmctx, alc);
req.request.predicate = predicate;
req.request.predicate_ud = predicate_ud;
MonoAssembly *res;
MONO_ENTER_GC_UNSAFE;
MonoAssemblyByNameRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req),
+ mono_assembly_request_prepare_byname (&req,
refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT,
mono_domain_default_alc (mono_domain_get ()));
req.requesting_assembly = NULL;
mono_assembly_load (MonoAssemblyName *aname, const char *basedir, MonoImageOpenStatus *status)
{
MonoAssemblyByNameRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
+ mono_assembly_request_prepare_byname (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
req.requesting_assembly = NULL;
req.basedir = basedir;
return mono_assembly_request_byname (aname, &req, status);
MonoImageOpenStatus open_status;
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_domain_get ()));
agent_assembly = mono_assembly_request_open (agent, &req, &open_status);
if (!agent_assembly) {
fprintf (stderr, "Cannot open agent assembly '%s': %s.\n", agent, mono_image_strerror (open_status));
*/
if (image->tables [MONO_TABLE_ASSEMBLY].rows && image->image_info->cli_cli_header.ch_vtable_fixups.rva) {
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, alc);
assembly = mono_assembly_request_open (file_name, &req, NULL);
}
}
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ()));
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ()));
assembly = mono_assembly_request_open (file_name, &req, NULL);
mono_close_exe_image ();
if (!assembly) {
#endif
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, alc);
if (domain != mono_domain_get ()) {
current = mono_domain_get ();
system_security_assembly = mono_image_loaded_internal (alc, "System.Security", FALSE);
if (!system_security_assembly) {
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, alc);
MonoAssembly *sa = mono_assembly_request_open ("System.Security.dll", &req, NULL);
g_assert (sa);
system_security_assembly = mono_assembly_get_image_internal (sa);
socket_assembly = mono_image_loaded_internal (alc, "System", FALSE);
if (!socket_assembly) {
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, alc);
MonoAssembly *sa = mono_assembly_request_open ("System.dll", &req, NULL);
if (!sa) {
mono_posix_image = mono_image_loaded_internal (alc, "Mono.Posix", FALSE);
if (!mono_posix_image) {
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, alc);
MonoAssembly *sa = mono_assembly_request_open ("Mono.Posix.dll", &req, NULL);
if (!sa) {
*werror = WSAENOPROTOOPT;
MonoImageOpenStatus status = MONO_IMAGE_OK;
MonoAssemblyOpenRequest req;
gchar *dll = g_strdup_printf ( "%s.dll", local_ref);
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, alc);
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, alc);
MonoAssembly *assm = mono_assembly_request_open (dll, &req, &status);
if (!assm) {
gchar *exe = g_strdup_printf ("%s.exe", local_ref);
total_run = total = 0;
for (i = 0; i < count; ++i) {
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ()));
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ()));
ass = mono_assembly_request_open (images [i], &req, NULL);
if (!ass) {
g_warning ("failed to load assembly: %s", images [i]);
total_run = total = 0;
for (i = 0; i < count; ++i) {
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ()));
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ()));
MonoAssembly *ass = mono_assembly_request_open (images [i], &req, NULL);
if (!ass) {
g_warning ("failed to load assembly: %s", images [i]);
}
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ()));
+ mono_assembly_request_prepare_open (&req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ()));
agent_assembly = mono_assembly_request_open (agent, &req, &open_status);
if (!agent_assembly) {
fprintf (stderr, "Cannot open agent assembly '%s': %s.\n", agent, mono_image_strerror (open_status));
}
MonoAssemblyOpenRequest open_req;
- mono_assembly_request_prepare (&open_req.request, sizeof (open_req), MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ()));
+ mono_assembly_request_prepare_open (&open_req, MONO_ASMCTX_DEFAULT, mono_domain_default_alc (mono_get_root_domain ()));
assembly = mono_assembly_request_open (aname, &open_req, &open_status);
if (!assembly && !mono_compile_aot) {
fprintf (stderr, "Cannot open assembly '%s': %s.\n", aname, mono_image_strerror (open_status));
for (int i = 0; i < a->assembly_count; ++i) {
if (!strcmp (basename, a->basenames[i])) {
MonoAssemblyOpenRequest req;
- mono_assembly_request_prepare (&req.request, sizeof (req), refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT, default_alc);
+ mono_assembly_request_prepare_open (&req, refonly ? MONO_ASMCTX_REFONLY : MONO_ASMCTX_DEFAULT, default_alc);
req.request.predicate = predicate;
req.request.predicate_ud = predicate_ud;