From 1ebc8dd2b620bc5cd15cf292f4a005f2aec487c9 Mon Sep 17 00:00:00 2001 From: "wtc%google.com" Date: Wed, 7 Jul 2010 22:00:19 +0000 Subject: [PATCH] Bug 415563: Add type casts to the arguments in the atomic macro definitions for Windows. The patch is contributed by Steve Snyder . r=wtc. git-svn-id: svn://10.0.0.236/trunk@260659 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/nsprpub/pr/include/pratom.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mozilla/nsprpub/pr/include/pratom.h b/mozilla/nsprpub/pr/include/pratom.h index 1c18a9f1e3f..7096be27dbd 100644 --- a/mozilla/nsprpub/pr/include/pratom.h +++ b/mozilla/nsprpub/pr/include/pratom.h @@ -125,10 +125,12 @@ long __cdecl _InterlockedExchange(long volatile *Target, long Value); long __cdecl _InterlockedExchangeAdd(long volatile *Addend, long Value); #pragma intrinsic(_InterlockedExchangeAdd) -#define PR_ATOMIC_INCREMENT(val) _InterlockedIncrement(val) -#define PR_ATOMIC_DECREMENT(val) _InterlockedDecrement(val) -#define PR_ATOMIC_SET(val, newval) _InterlockedExchange(val, newval) -#define PR_ATOMIC_ADD(ptr, val) (_InterlockedExchangeAdd(ptr, val) + (val)) +#define PR_ATOMIC_INCREMENT(val) _InterlockedIncrement((long volatile *)(val)) +#define PR_ATOMIC_DECREMENT(val) _InterlockedDecrement((long volatile *)(val)) +#define PR_ATOMIC_SET(val, newval) \ + _InterlockedExchange((long volatile *)(val), (long)(newval)) +#define PR_ATOMIC_ADD(ptr, val) \ + (_InterlockedExchangeAdd((long volatile *)(ptr), (long)(val)) + (val)) #elif ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) && \ ((defined(DARWIN) && \