diff options
Diffstat (limited to 'intern/atomic/atomic_ops.h')
-rw-r--r-- | intern/atomic/atomic_ops.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/intern/atomic/atomic_ops.h b/intern/atomic/atomic_ops.h index f63ff630c40..06a5c8d834e 100644 --- a/intern/atomic/atomic_ops.h +++ b/intern/atomic/atomic_ops.h @@ -34,6 +34,11 @@ #if defined (__APPLE__) # include <libkern/OSAtomic.h> #elif defined(_MSC_VER) +# define NOGDI +# ifndef NOMINMAX +# define NOMINMAX +# endif +# define WIN32_LEAN_AND_MEAN # include <windows.h> #elif defined(__arm__) /* Attempt to fix compilation error on Debian armel kernel. @@ -97,13 +102,13 @@ atomic_cas_uint64(uint64_t *v, uint64_t old, uint64_t _new) ATOMIC_INLINE uint64_t atomic_add_uint64(uint64_t *p, uint64_t x) { - return InterlockedExchangeAdd64(p, x); + return InterlockedExchangeAdd64((int64_t *)p, (int64_t)x); } ATOMIC_INLINE uint64_t atomic_sub_uint64(uint64_t *p, uint64_t x) { - return InterlockedExchangeAdd64(p, -((int64_t)x)); + return InterlockedExchangeAdd64((int64_t *)p, -((int64_t)x)); } ATOMIC_INLINE uint64_t |