2003-11-24 Zoltan Varga <vargaz@freemail.hu>
+ icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
+ Enumerate all modules inside a dynamic assembly. Fixes #51293.
+
* icall.c: Add new icall for creating dynamic methods.
* loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
type = NULL;
}
else
- type = mono_reflection_get_type (assembly->assembly->image, &info, ignoreCase);
+ if (assembly->assembly->dynamic) {
+ /* Enumerate all modules */
+ MonoReflectionAssemblyBuilder *abuilder = (MonoReflectionAssemblyBuilder*)assembly;
+ int i;
+
+ if (!abuilder->modules)
+ type = NULL;
+ else {
+ for (i = 0; i < mono_array_length (abuilder->modules); ++i) {
+ MonoReflectionModuleBuilder *mb = mono_array_get (abuilder->modules, MonoReflectionModuleBuilder*, i);
+ type = mono_reflection_get_type (&mb->dynamic_image->image, &info, ignoreCase);
+ if (type)
+ break;
+ }
+ }
+ }
+ else
+ type = mono_reflection_get_type (assembly->assembly->image, &info, ignoreCase);
g_free (str);
g_list_free (info.modifiers);
g_list_free (info.nested);