dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dotgnu-pnet-commits] libjit ChangeLog jit/jit-alloc.c


From: Aleksey Demakov
Subject: [dotgnu-pnet-commits] libjit ChangeLog jit/jit-alloc.c
Date: Fri, 23 May 2008 14:53:31 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    libjit
Changes by:     Aleksey Demakov <avd>   08/05/23 14:53:31

Modified files:
        .              : ChangeLog 
        jit            : jit-alloc.c 

Log message:
        on win32 use VirtualAlloc and VirtualFree to allocate/free executable 
memory

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libjit/ChangeLog?cvsroot=dotgnu-pnet&r1=1.373&r2=1.374
http://cvs.savannah.gnu.org/viewcvs/libjit/jit/jit-alloc.c?cvsroot=dotgnu-pnet&r1=1.7&r2=1.8

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/ChangeLog,v
retrieving revision 1.373
retrieving revision 1.374
diff -u -b -r1.373 -r1.374
--- ChangeLog   23 May 2008 11:00:42 -0000      1.373
+++ ChangeLog   23 May 2008 14:53:30 -0000      1.374
@@ -1,3 +1,8 @@
+2008-05-23  Juan Jesus Garcia de Soria  <address@hidden>
+
+       * jit/jit-alloc.c (jit_malloc_exec, jit_free_exec): on win32 use
+       VirtualAlloc and VirtualFree to allocate/free executable memory.
+
 2008-05-23  Klaus Treichel   <address@hidden>
 
        * dpas/dpas-scanner.l, tools/gen-rules-scanner.l,

Index: jit/jit-alloc.c
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/jit/jit-alloc.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- jit/jit-alloc.c     24 Jan 2008 20:12:50 -0000      1.7
+++ jit/jit-alloc.c     23 May 2008 14:53:31 -0000      1.8
@@ -143,10 +143,14 @@
 @*/
 void *jit_malloc_exec(unsigned int size)
 {
-#ifdef JIT_USE_MMAP
-       void *ptr = mmap(0, size, PROT_READ | PROT_WRITE | PROT_EXEC,
+#if defined(JIT_WIN32_PLATFORM)
+       return VirtualAlloc(NULL, size,
+                           MEM_COMMIT | MEM_RESERVE,
+                           PAGE_EXECUTE_READWRITE);
+#elif defined(JIT_USE_MMAP)
+       void *ptr = mmap(0, size,
+                        PROT_READ | PROT_WRITE | PROT_EXEC,
                                                          MAP_PRIVATE | 
MAP_ANONYMOUS, -1, 0);
-
        if(ptr == (void *)-1)
        {
                return (void *)0;
@@ -169,11 +173,13 @@
 {
        if(ptr)
        {
-       #ifdef JIT_USE_MMAP
+#if defined(JIT_WIN32_PLATFORM)
+               VirtualFree(ptr, size, MEM_DECOMMIT | MEM_RELEASE);
+#elif defined(JIT_USE_MMAP)
                munmap(ptr, size);
-       #else
+#else
                free(ptr);
-       #endif
+#endif
        }
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]