Hi all,

I get "GC Warning: Out of Memory!  Returning NIL!" and a core dump when
running the following program:

using System;
using System.Runtime.InteropServices;

public class Test
{
	public static void Main (string[] args)
	{
		IntPtr buffer = Marshal.AllocHGlobal (100);
		Marshal.WriteInt32 (buffer, 0);
		string s = Marshal.PtrToStringUni (buffer);
		Console.WriteLine ("'{0}'", s);
	}
}


The fix for this is very simple:

Index: marshal.c
===================================================================
RCS file: /mono/mono/mono/metadata/marshal.c,v
retrieving revision 1.55
diff -u -r1.55 marshal.c
--- marshal.c	28 Nov 2002 12:45:45 -0000	1.55
+++ marshal.c	29 Nov 2002 21:14:37 -0000
@@ -2738,7 +2738,7 @@

 	MONO_ARCH_SAVE_REGS;

-	while (t++)
+	while (*t++)
 		len++;

 	return mono_string_new_utf16 (domain, ptr, len);

Regards,
Aleksey


_______________________________________________
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to