From: Behdad Esfahbod Date: Mon, 10 Sep 2018 09:05:33 +0000 (+0200) Subject: [atomic] Fix pointer type passed to InterlockedExchangeAdd() X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d42f0e5809964136911cbbd845bc423a8dfd5e31;p=platform%2Fupstream%2FlibHarfBuzzSharp.git [atomic] Fix pointer type passed to InterlockedExchangeAdd() John Emmas reported on mailing list that build with MSVC is failing. Not sure why bots don't catch it, but this should fix. --- diff --git a/src/hb-atomic.hh b/src/hb-atomic.hh index d494c89..6e3672c 100644 --- a/src/hb-atomic.hh +++ b/src/hb-atomic.hh @@ -98,7 +98,7 @@ static inline void _hb_memory_barrier (void) { #if !defined(MemoryBarrier) /* MinGW has a convoluted history of supporting MemoryBarrier. */ - long dummy = 0; + LONG dummy = 0; InterlockedExchange (&dummy, 1); #else MemoryBarrier (); @@ -106,7 +106,8 @@ static inline void _hb_memory_barrier (void) } #define _hb_memory_barrier() _hb_memory_barrier () -#define hb_atomic_int_impl_add(AI, V) InterlockedExchangeAdd ((unsigned *) (AI), (V)) +#define hb_atomic_int_impl_add(AI, V) InterlockedExchangeAdd ((LONG *) (AI), (V)) +static_assert ((sizeof (LONG) == sizeof (int)), ""); #define hb_atomic_ptr_impl_cmpexch(P,O,N) (InterlockedCompareExchangePointer ((void **) (P), (void *) (N), (void *) (O)) == (void *) (O))