(monodis_assembly_search_hook): New.
(main): Install them as hooks into the assembly loading core.
* metadata/class.c (mono_class_from_typeref): Add a sanity test to help
catch lack of assembly load/search hooks.
svn path=/trunk/mono/; revision=55829
+2006-01-20 Raja R Harinath <rharinath@novell.com>
+
+ * main.c (monodis_assembly_load_hook): New.
+ (monodis_assembly_search_hook): New.
+ (main): Install them as hooks into the assembly loading core.
+
2006-01-19 Ankit Jain <jankit@novell.com>
* main.c (dis_type): Dump custom attributes for a type before doing the same
return result;
}
+static GList *loaded_assemblies = NULL;
+
+static void
+monodis_assembly_load_hook (MonoAssembly *assembly, gpointer user_data)
+{
+ loaded_assemblies = g_list_prepend (loaded_assemblies, assembly);
+}
+
+static MonoAssembly *
+monodis_assembly_search_hook (MonoAssemblyName *aname, gpointer user_data)
+{
+ GList *tmp;
+
+ for (tmp = loaded_assemblies; tmp; tmp = tmp->next) {
+ MonoAssembly *ass = tmp->data;
+ if (mono_assembly_names_equal (aname, &ass->aname))
+ return ass;
+ }
+ return NULL;
+}
static void
usage (void)
if (input_files == NULL)
usage ();
+ mono_install_assembly_load_hook (monodis_assembly_load_hook, NULL);
+ mono_install_assembly_search_hook (monodis_assembly_search_hook, NULL);
+
/*
* If we just have one file, use the corlib version it requires.
*/
+2006-01-20 Raja R Harinath <rharinath@novell.com>
+
+ * class.c (mono_class_from_typeref): Add a sanity test to help
+ catch lack of assembly load/search hooks.
+
2006-01-19 Zoltan Varga <vargaz@gmail.com>
* marshal.c (emit_struct_conv): Relax the fields with same offset
}
references = image->references;
- if (!references [idx-1])
+ if (!references [idx - 1])
mono_assembly_load_reference (image, idx - 1);
+ /* If this assert fails, it probably means that you haven't installed an assembly load/search hook */
+ g_assert (references == image->references);
+ g_assert (references [idx - 1]);
if (references [idx - 1] == (gpointer)-1)
return NULL;
- image = references [idx-1]->image;
-
- return mono_class_from_name (image, nspace, name);
+ return mono_class_from_name (references [idx - 1]->image, nspace, name);
}
static inline MonoType*