[Fontconfig] fontconfig: Branch 'master'

Behdad Esfahbod behdad at kemper.freedesktop.org
Fri Jul 11 09:20:40 PDT 2014


 src/fcatomic.h |   18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

New commits:
commit 6781c6baef062eeea5b5b68e4a9c31ea6cd7539b
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jul 11 12:19:39 2014 -0400

    Update mingw32 MemoryBarrier from HarfBuzz
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=81228

diff --git a/src/fcatomic.h b/src/fcatomic.h
index 362e521..cc28a88 100644
--- a/src/fcatomic.h
+++ b/src/fcatomic.h
@@ -48,22 +48,22 @@
 
 #include "fcwindows.h"
 
-/* mingw32 does not have MemoryBarrier.
- * MemoryBarrier may be defined as a macro or a function.
- * Just make a failsafe version for ourselves. */
-#ifdef MemoryBarrier
-#define HBMemoryBarrier MemoryBarrier
-#else
-static inline void HBMemoryBarrier (void) {
+/* MinGW has a convoluted history of supporting MemoryBarrier
+ * properly.  As such, define a function to wrap the whole
+ * thing. */
+static inline void _FCMemoryBarrier (void) {
+#if !defined(MemoryBarrier)
   long dummy = 0;
   InterlockedExchange (&dummy, 1);
-}
+#else
+  MemoryBarrier ();
 #endif
+}
 
 typedef LONG fc_atomic_int_t;
 #define fc_atomic_int_add(AI, V)	InterlockedExchangeAdd (&(AI), (V))
 
-#define fc_atomic_ptr_get(P)		(HBMemoryBarrier (), (void *) *(P))
+#define fc_atomic_ptr_get(P)		(_FCMemoryBarrier (), (void *) *(P))
 #define fc_atomic_ptr_cmpexch(P,O,N)	(InterlockedCompareExchangePointer ((void **) (P), (void *) (N), (void *) (O)) == (void *) (O))
 
 


More information about the Fontconfig mailing list