From: Martin Baulig Date: Fri, 24 Mar 2006 19:16:42 +0000 (-0000) Subject: 2006-03-24 Martin Baulig X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=2ced08a1f887627c5f53c4160117ed299bd54563;hp=cde2e75a1a142889c5f23d485d0e54bf7b7a42b5;p=mono.git 2006-03-24 Martin Baulig * class.c (mono_class_setup_fields): Added support for generic instances; fixes #77580. svn path=/trunk/mono/; revision=58478 --- diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 4a90eebf332..f831ed0d8e4 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,8 @@ +2006-03-24 Martin Baulig + + * class.c (mono_class_setup_fields): Added support for generic + instances; fixes #77580. + 2006-03-24 Gonzalo Paniagua Javier * assembly.c: publickeytoken is case insensitive. Fixes bug #77898. diff --git a/mono/metadata/class.c b/mono/metadata/class.c index 8801b31d29f..1545ca95ac8 100644 --- a/mono/metadata/class.c +++ b/mono/metadata/class.c @@ -770,7 +770,7 @@ static void mono_class_setup_fields (MonoClass *class) { MonoImage *m = class->image; - const int top = class->field.count; + int top = class->field.count; guint32 layout = class->flags & TYPE_ATTRIBUTE_LAYOUT_MASK; MonoTableInfo *t = &m->tables [MONO_TABLE_FIELD]; int i, blittable = TRUE; @@ -784,8 +784,11 @@ mono_class_setup_fields (MonoClass *class) if (class->size_inited) return; - if (class->inited) - mono_class_init (class); + if (class->generic_class) { + MonoClass *gklass = class->generic_class->container_class; + mono_class_setup_fields (gklass); + top = gklass->field.count; + } class->instance_size = 0; class->class_size = 0;