summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2010-05-07 06:57:11 +0100
committerJosé Fonseca <jfonseca@vmware.com>2010-05-07 06:57:11 +0100
commit5569faf05abd550b81649f3961c743448e708825 (patch)
treeb5698dea4d15c39ae2a760f5f041815e6bd14491
parent80c8c891c9272a9a022335e61fa4c3514bb50df8 (diff)
mapi: Avoid Data Execution Prevention on windows.
-rw-r--r--src/mapi/glapi/glapitemp.h2
-rw-r--r--src/mapi/mapi/u_execmem.c16
2 files changed, 17 insertions, 1 deletions
diff --git a/src/mapi/glapi/glapitemp.h b/src/mapi/glapi/glapitemp.h
index 3ed337f825..92835b9afc 100644
--- a/src/mapi/glapi/glapitemp.h
+++ b/src/mapi/glapi/glapitemp.h
@@ -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
diff --git a/src/mapi/mapi/u_execmem.c b/src/mapi/mapi/u_execmem.c
index 0e0f8aa316..fae2c75c0e 100644
--- a/src/mapi/mapi/u_execmem.c
+++ b/src/mapi/mapi/u_execmem.c
@@ -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 *