mapi: Avoid Data Execution Prevention on windows.
authorJosé Fonseca <jfonseca@vmware.com>
Fri, 7 May 2010 05:57:11 +0000 (06:57 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Fri, 7 May 2010 05:57:11 +0000 (06:57 +0100)
src/mapi/glapi/glapitemp.h
src/mapi/mapi/u_execmem.c

index 3ed337f8254c72e5b8b0a3de837da144caaf6f8b..92835b9afc2341f5ca2ee0d7c323de76bd91e55b 100644 (file)
@@ -27,7 +27,7 @@
  */
 
 
-#  if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) && defined(__ELF__)
+#  if (defined(__GNUC__) && !defined(__MINGW32__)) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) && defined(__ELF__)
 #    define HIDDEN  __attribute__((visibility("hidden")))
 #  else
 #    define HIDDEN
index 0e0f8aa316f568214229f90dc70fec484c610f6c..fae2c75c0ec104e05ca717fb1f1a3d4a74f79e31 100644 (file)
@@ -110,6 +110,22 @@ bail:
 }
 
 
+#elif defined(_WIN32)
+
+#include <windows.h>
+
+
+/*
+ * Avoid Data Execution Prevention.
+ */
+
+void *
+u_execmem_alloc(unsigned int size)
+{
+   return VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
+}
+
+
 #else
 
 void *