Fix build without mutex
authorBehdad Esfahbod <behdad@behdad.org>
Tue, 10 May 2011 23:21:07 +0000 (19:21 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Tue, 10 May 2011 23:21:07 +0000 (19:21 -0400)
src/hb-mutex-private.hh

index 5a74337..3cc47e9 100644 (file)
@@ -71,13 +71,13 @@ typedef CRITICAL_SECTION hb_mutex_t;
 
 #warning "Could not find any system to define platform macros, library will NOT be thread-safe"
 
-typedef volatile int hb_mutex_t;
+typedef struct { volatile int m; } hb_mutex_t;
 #define HB_MUTEX_INIT                          0
-#define hb_mutex_init(M)                       ((void) (*(M) = 0))
-#define hb_mutex_lock(M)                       ((void) (*(M) = 1))
-#define hb_mutex_trylock(M)                    (*(M) = 1, 1)
-#define hb_mutex_unlock(M)                     ((void) (*(M) = 0))
-#define hb_mutex_free(M)                       ((void) (*(M) = 2))
+#define hb_mutex_init(M)                       ((void) ((M)->m = 0))
+#define hb_mutex_lock(M)                       ((void) ((M)->m = 1))
+#define hb_mutex_trylock(M)                    ((M)->m = 1, 1)
+#define hb_mutex_unlock(M)                     ((void) ((M)->m = 0))
+#define hb_mutex_free(M)                       ((void) ((M)-M = 2))
 
 
 #endif