Attempt to fix compilation error on OSX and Windows

This commit is contained in:
Sergey Sharybin
2013-08-16 10:29:56 +00:00
parent 5b384365ca
commit 02eda9189b

View File

@@ -29,6 +29,12 @@
#ifndef ATOMIC_OPS_H__
#define ATOMIC_OPS_H__
#if defined (__APPLE__)
# include <libkern/OSAtomic.h>
#elif defined(_MSC_VER)
# include <windows.h>
#endif
/* needed for int types */
#include "../../source/blender/blenlib/BLI_sys_types.h"
@@ -44,8 +50,7 @@
# endif
#endif
/* TODO(sergey): check on other 64bit platforms. */
#if defined(_M_X64) || defined(_M_AMD64) || defined(__amd64__) || defined(__x86_64__)
#if defined(_M_X64) || defined(__amd64__) || defined(__x86_64__)
# define LG_SIZEOF_PTR 3
# define LG_SIZEOF_INT 3
#else
@@ -80,7 +85,7 @@ atomic_sub_uint64(uint64_t *p, uint64_t x)
{
return (InterlockedExchangeAdd64(p, -((int64_t)x)));
}
#elif (defined(JEMALLOC_OSATOMIC))
#elif (defined(__APPLE__))
ATOMIC_INLINE uint64_t
atomic_add_uint64(uint64_t *p, uint64_t x)
{
@@ -178,7 +183,7 @@ atomic_sub_uint32(uint32_t *p, uint32_t x)
{
return (InterlockedExchangeAdd(p, -((int32_t)x)));
}
#elif (defined(JEMALLOC_OSATOMIC))
#elif (defined(__APPLE__))
ATOMIC_INLINE uint32_t
atomic_add_uint32(uint32_t *p, uint32_t x)
{
@@ -258,10 +263,10 @@ atomic_sub_z(size_t *p, size_t x)
{
#if (LG_SIZEOF_PTR == 3)
return ((size_t)atomic_add_uint64((uint64_t *)p,
(uint64_t) - ((int64_t)x)));
(uint64_t)-((int64_t)x)));
#elif (LG_SIZEOF_PTR == 2)
return ((size_t)atomic_add_uint32((uint32_t *)p,
(uint32_t) - ((int32_t)x)));
(uint32_t)-((int32_t)x)));
#endif
}
@@ -282,10 +287,10 @@ atomic_sub_u(unsigned *p, unsigned x)
{
#if (LG_SIZEOF_INT == 3)
return ((unsigned)atomic_add_uint64((uint64_t *)p,
(uint64_t) - ((int64_t)x)));
(uint64_t)-((int64_t)x)));
#elif (LG_SIZEOF_INT == 2)
return ((unsigned)atomic_add_uint32((uint32_t *)p,
(uint32_t) - ((int32_t)x)));
(uint32_t)-((int32_t)x)));
#endif
}