[Mono-dev] custom mscorlib.dll with fields in .Array

Robert Jordan robertj at gmx.net
Fri Jun 5 05:51:17 EDT 2009


banan wrote:
> I need to use custom mscorlib.dll library with some fields defined in
> System.Array. csc on .net compiles assemblies referencing it with no
> problem, but when trying to compile anything referencing this mscorlib.dll
> with gmcs (Mono 2.4) an assertion fault occurs in metadata/class.c at the
> code
> 
> 	/* reserve space to store vector pointer in arrays */
> 	if (!strcmp (nspace, "System") && !strcmp (name, "Array")) {
> 		class->instance_size += 2 * sizeof (gpointer);
> 		g_assert (class->field.count == 0);
> 	}
> 
> The question is: am I violating the standard or it is a bug in mono?

It's a bug in mono. Test case:

namespace System
{
	public class Array {
		public int Foo;

		static void Main ()
		{
		}
	}
}

The code in class.c does not check if the System.Array type
is originating from mscorlib. See attached patch.

Robert
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: class.diff
Url: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20090605/3f8ae41e/attachment.pl 


More information about the Mono-devel-list mailing list