summaryrefslogtreecommitdiffstats
path: root/gfx/cairo/pixman-xp-dll-workaround
blob: e5d1fcbf8248ae1c9c62ea12e52c65e198ad48d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
diff --git a/gfx/cairo/libpixman/src/pixman-compiler.h b/gfx/cairo/libpixman/src/pixman-compiler.h
--- a/gfx/cairo/libpixman/src/pixman-compiler.h
+++ b/gfx/cairo/libpixman/src/pixman-compiler.h
@@ -114,20 +114,22 @@
 
 #elif defined(TLS)
 
 #   define PIXMAN_DEFINE_THREAD_LOCAL(type, name)			\
     static TLS type name
 #   define PIXMAN_GET_THREAD_LOCAL(name)				\
     (&name)
 
-#elif defined(__MINGW32__)
+#elif defined(__MINGW32__) || defined(PIXMAN_USE_XP_DLL_TLS_WORKAROUND)
 
 #   define _NO_W32_PSEUDO_MODIFIERS
 #   include <windows.h>
+#undef IN
+#undef OUT
 
 #   define PIXMAN_DEFINE_THREAD_LOCAL(type, name)			\
     static volatile int tls_ ## name ## _initialized = 0;		\
     static void *tls_ ## name ## _mutex = NULL;				\
     static unsigned tls_ ## name ## _index;				\
 									\
     static type *							\
     tls_ ## name ## _alloc (void)					\