[Bf-blender-cvs] [18d08ed] master: Fixes for atomic operations when building with MSVC

Sergey Sharybin noreply at git.blender.org
Tue Dec 2 12:38:39 CET 2014


Commit: 18d08ede22e20e46aa75957ce09543c788c64460
Author: Sergey Sharybin
Date:   Tue Dec 2 16:38:09 2014 +0500
Branches: master
https://developer.blender.org/rB18d08ede22e20e46aa75957ce09543c788c64460

Fixes for atomic operations when building with MSVC

===================================================================

M	intern/atomic/atomic_ops.h

===================================================================

diff --git a/intern/atomic/atomic_ops.h b/intern/atomic/atomic_ops.h
index f63ff63..06a5c8d 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




More information about the Bf-blender-cvs mailing list