# HG changeset patch # User Sam Lantinga # Date 1295301943 28800 # Node ID 1bf9e38431ec4a279bdf9304a3c2f2e6e656120c # Parent 22751715e11acda32dc5ff2c04a51a12eee43a98 Use compiler intrinsics on Windows diff -r 22751715e11a -r 1bf9e38431ec src/atomic/SDL_spinlock.c --- a/src/atomic/SDL_spinlock.c Mon Jan 17 14:05:14 2011 -0800 +++ b/src/atomic/SDL_spinlock.c Mon Jan 17 14:05:43 2011 -0800 @@ -25,8 +25,7 @@ #include "SDL_timer.h" #if defined(__WIN32__) -#define WIN32_LEAN_AND_MEAN -#include +#include #elif defined(__MACOSX__) #include @@ -39,7 +38,8 @@ SDL_AtomicTryLock(SDL_SpinLock *lock) { #if defined(__WIN32__) - return (InterlockedExchange(lock, 1) == 0); + SDL_COMPILE_TIME_ASSERT(locksize, sizeof(*lock) == sizeof(long)); + return (_InterlockedExchange((long*)lock, 1) == 0); #elif defined(__MACOSX__) return OSAtomicCompareAndSwap32Barrier(0, 1, lock);