Branimir Karadžić 10 лет назад
Родитель
Сommit
44ff9fda83
1 измененных файлов с 4 добавлено и 4 удалено
  1. 4 4
      include/bx/cpu.h

+ 4 - 4
include/bx/cpu.h

@@ -79,7 +79,7 @@ namespace bx
 	inline int32_t atomicFetchAndAdd(volatile int32_t* _ptr, int32_t _add)
 	{
 #if BX_COMPILER_MSVC
-		return _InterlockedExchangeAdd(_ptr, _add);
+		return _InterlockedExchangeAdd( (volatile long*)_ptr, _add);
 #else
 		return __sync_fetch_and_add(_ptr, _add);
 #endif // BX_COMPILER_
@@ -88,7 +88,7 @@ namespace bx
 	inline int32_t atomicAddAndFetch(volatile int32_t* _ptr, int32_t _add)
 	{
 #if BX_COMPILER_MSVC
-		return _InterlockedExchangeAdd(_ptr, _add) + _add;
+		return atomicFetchAndAdd(_ptr, _add) + _add;
 #else
 		return __sync_add_and_fetch(_ptr, _add);
 #endif // BX_COMPILER_
@@ -97,7 +97,7 @@ namespace bx
 	inline int32_t atomicFetchAndSub(volatile int32_t* _ptr, int32_t _sub)
 	{
 #if BX_COMPILER_MSVC
-		return _InterlockedExchangeAdd(_ptr, -_sub);
+		return atomicFetchAndAdd(_ptr, -_sub);
 #else
 		return __sync_fetch_and_sub(_ptr, _sub);
 #endif // BX_COMPILER_
@@ -106,7 +106,7 @@ namespace bx
 	inline int32_t atomicSubAndFetch(volatile int32_t* _ptr, int32_t _sub)
 	{
 #if BX_COMPILER_MSVC
-		return _InterlockedExchangeAdd(_ptr, -_sub) - _sub;
+		return atomicFetchAndAdd(_ptr, -_sub) - _sub;
 #else
 		return __sync_sub_and_fetch(_ptr, _sub);
 #endif // BX_COMPILER_