[Mono-bugs] [Bug 462016] make check for pinvoke2.exe fails for PowerPC
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Tue Dec 23 17:33:10 EST 2008
https://bugzilla.novell.com/show_bug.cgi?id=462016
User munroesj at us.ibm.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=462016#c2
Steven Munroe <munroesj at us.ibm.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |munroesj at us.ibm.com
--- Comment #2 from Steven Munroe <munroesj at us.ibm.com> 2008-12-23 15:33:09 MST ---
This is annoying
The bogus MonoClass seems to be referenced out of the instruction stream.
stating with mini.c:mono_allocate_stack_slots_full():
size = mono_class_native_size (inst->inst_vtype->data.klass, &align);
and marshal.c:mono_class_native_size(MonoClass *klass, guint32 *align) calls:
mono_marshal_load_type_info (klass);
and marshal.c:mono_marshal_load_type_info(MonoClass* klass) calls:
mono_class_init (klass);
and class.c: mono_class_init(MonoClass* class) recursively calls itself:
if (class->parent && !class->parent->inited) {
mono_class_init (class->parent);
}
Which recursively calls itself again:
if (class->generic_class && !class->generic_class->is_dynamic) {
MonoClass *gklass = class->generic_class->container_class;
mono_stats.generic_class_count++;
class->method = gklass->method;
class->field = gklass->field;
mono_class_init (gklass);
mono_class_setup_methods (gklass);
if (MONO_CLASS_IS_INTERFACE (class))
class->interface_id = mono_get_unique_iid (class);
g_assert (class->interface_count == gklass->interface_count);
}
this call returns after initializing the "container_class" and dies on the
assert because class->interface_count and many other fields are bogus.
So far I have not been able to find where bad MonoClass was created or
initialized or where it was stuffed into the instruction stream ...
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list