ass->basedir = base_dir;
ass->image = image;
- image->assembly = ass;
-
t = &image->tables [MONO_TABLE_ASSEMBLY];
if (t->rows) {
mono_metadata_decode_row (t, 0, cols, MONO_ASSEMBLY_SIZE);
}
}
+ image->assembly = ass;
+
/* register right away to prevent loops */
loaded_assemblies = g_list_prepend (loaded_assemblies, ass);
g_free (module_ref);
}
- g_free (base_dir);
return ass;
}
g_free (assembly);
}
+void
+mono_assembly_foreach (GFunc func, gpointer user_data)
+{
+ /* In the future this can do locking of loaded_assemblies */
+
+ g_list_foreach (loaded_assemblies, func, user_data);
+}
+
+/* Holds the assembly of the application, for
+ * System.Diagnostics.Process::MainModule
+ */
+static MonoAssembly *main_assembly=NULL;
+
+void
+mono_assembly_set_main (MonoAssembly *assembly)
+{
+ main_assembly=assembly;
+}
+
+MonoAssembly *
+mono_assembly_get_main (void)
+{
+ return(main_assembly);
+}