[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