From c585d3890e50d8b8fceabc5d486704501fa79c83 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Thu, 27 Oct 2016 13:22:13 +0300 Subject: [PATCH] core: update CV_XADD Allow to use custom implementations of CV_XADD (passed via -D of CXXFLAGS) --- modules/core/include/opencv2/core/operations.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/core/include/opencv2/core/operations.hpp b/modules/core/include/opencv2/core/operations.hpp index 0177d8db7a..1b7484aded 100644 --- a/modules/core/include/opencv2/core/operations.hpp +++ b/modules/core/include/opencv2/core/operations.hpp @@ -52,8 +52,8 @@ #ifdef __cplusplus /////// exchange-add operation for atomic operations on reference counters /////// -#if defined __INTEL_COMPILER && !(defined WIN32 || defined _WIN32) // atomic increment on the linux version of the Intel(tm) compiler - #define CV_XADD(addr,delta) _InterlockedExchangeAdd(const_cast(reinterpret_cast(addr)), delta) +#ifdef CV_XADD + // allow to use user-defined macro #elif defined __GNUC__ #if defined __clang__ && __clang_major__ >= 3 && !defined __ANDROID__ && !defined __EMSCRIPTEN__ && !defined(__CUDACC__)