Author: joncham
Date: 2006-12-19 12:19:37 -0500 (Tue, 19 Dec 2006)
New Revision: 69758

Modified:
   trunk/mono/mono/metadata/ChangeLog
   trunk/mono/mono/metadata/marshal.c
Log:
2006-12-19  Jonathan Chambers  <[EMAIL PROTECTED]>

        * marshal.c 
(ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
        ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use 
GlobalAlloc
        and GlobalFree on Windows. Remove FIXME.


Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog  2006-12-19 17:00:10 UTC (rev 69757)
+++ trunk/mono/mono/metadata/ChangeLog  2006-12-19 17:19:37 UTC (rev 69758)
@@ -1,4 +1,9 @@
+2006-12-19  Jonathan Chambers  <[EMAIL PROTECTED]>
 
+       * marshal.c 
(ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
+       ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use 
GlobalAlloc
+       and GlobalFree on Windows. Remove FIXME.
+
 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <[EMAIL PROTECTED]>
 
        * mono-mlist.h, mono-mlist.c, Makefile.am: linked list

Modified: trunk/mono/mono/metadata/marshal.c
===================================================================
--- trunk/mono/mono/metadata/marshal.c  2006-12-19 17:00:10 UTC (rev 69757)
+++ trunk/mono/mono/metadata/marshal.c  2006-12-19 17:19:37 UTC (rev 69758)
@@ -9836,8 +9836,6 @@
        mono_struct_delete_old (klass, (char *)src);
 }
 
-
-/* FIXME: on win32 we should probably use GlobalAlloc(). */
 void*
 ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal (int size)
 {
@@ -9849,7 +9847,11 @@
                /* This returns a valid pointer for size 0 on MS.NET */
                size = 4;
 
+#ifdef PLATFORM_WIN32
+       res = GlobalAlloc (GMEM_FIXED, (gulong)size);
+#else
        res = g_try_malloc ((gulong)size);
+#endif
        if (!res)
                mono_gc_out_of_memory ((gulong)size);
 
@@ -9861,7 +9863,11 @@
 {
        MONO_ARCH_SAVE_REGS;
 
+#ifdef PLATFORM_WIN32
+       GlobalFree (ptr);
+#else
        g_free (ptr);
+#endif
 }
 
 void*

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to