summaryrefslogtreecommitdiffstats
path: root/src/harfbuzz-2-memory-barrier.patch
blob: 93f708a5e7f13b60840e9f66f3c3d8b4ee8ccaac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
This file is part of MXE.
See index.html for further information.

Beware! This patch must be removed when winnt.h is updated to a version that
includes the MemoryBarrier() macro.

diff -ur harfbuzz-0.9.14.orig/src/hb-atomic-private.hh harfbuzz-0.9.14/src/hb-atomic-private.hh
--- harfbuzz-0.9.14.orig/src/hb-atomic-private.hh	2013-03-19 12:04:53.000000000 +0100
+++ harfbuzz-0.9.14/src/hb-atomic-private.hh	2013-03-27 05:32:38.407335037 +0100
@@ -44,6 +44,12 @@
 
 #elif !defined(HB_NO_MT) && (defined(_WIN32) || defined(__CYGWIN__))
 
+static inline void MemoryBarrier(void)
+{
+  long Barrier = 0;
+  __asm__ __volatile__ ("xchgl %%eax,%0 " : "=r" (Barrier));
+}
+
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>