static MonoObject * mono_jit_exec_virt (MonoAssembly *assembly, char *mtd_name, MonoArray *v_args) { MonoImage *image = mono_assembly_get_image (assembly); MonoMethod *method; MonoClass *class; MonoMethodDesc *desc; MonoObject *exc = NULL, *ret; class = mono_class_from_name (image, "", "VInvoke"); desc = mono_method_desc_new (mtd_name, 1); method = mono_method_desc_search_in_image (desc, image); mono_assembly_set_main ( mono_image_get_assembly ( mono_class_get_image ( mono_method_get_class (method)))); /*mono_start_method = mono_marshal_get_runtime_invoke (method);*/ ret = virt_mono_runtime_exec_main (method, v_args, &exc); if (exc) virt_mono_throw_unhandled_exception (exc); return ret; }
bool GDMono::_load_project_assembly() { if (project_assembly) return true; String name = ProjectSettings::get_singleton()->get("application/config/name"); if (name.empty()) { name = "UnnamedProject"; } bool success = _load_assembly(name, &project_assembly); if (success) mono_assembly_set_main(project_assembly->get_assembly()); return success; }
bool GDMono::_load_project_assembly() { if (project_assembly) return true; String name = ProjectSettings::get_singleton()->get("application/config/name"); if (name.empty()) { name = "UnnamedProject"; } bool success = load_assembly(name, &project_assembly); if (success) { mono_assembly_set_main(project_assembly->get_assembly()); } else { if (OS::get_singleton()->is_stdout_verbose()) print_error("Mono: Failed to load project assembly"); } return success; }