Mesa (main): u_atomic: Fix MSVC p_atomic_add_return
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jul 14 13:23:17 UTC 2022
Module: Mesa
Branch: main
Commit: 81bbfab5dfa33bf251ed519dde30128f39e7a3f9
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=81bbfab5dfa33bf251ed519dde30128f39e7a3f9
Author: Jesse Natalie <jenatali at microsoft.com>
Date: Fri Jul 8 12:29:41 2022 -0700
u_atomic: Fix MSVC p_atomic_add_return
InterlockedExchangeAdd returns the *old* value, not the new one
Cc: mesa-stable
Reviewed-by: Yonggang Luo <luoyonggang at gmail.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17529>
---
src/util/u_atomic.h | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/util/u_atomic.h b/src/util/u_atomic.h
index f9570e89236..16dccd234d1 100644
--- a/src/util/u_atomic.h
+++ b/src/util/u_atomic.h
@@ -153,10 +153,8 @@
((void) p_atomic_add_return((_v), (_i)))
#define p_atomic_add_return(_v, _i) (\
- sizeof *(_v) == sizeof(char) ? _InterlockedExchangeAdd8 ((char *) (_v), (_i)) : \
- sizeof *(_v) == sizeof(short) ? _InterlockedExchangeAdd16((short *) (_v), (_i)) : \
- sizeof *(_v) == sizeof(long) ? _InterlockedExchangeAdd ((long *) (_v), (_i)) : \
- sizeof *(_v) == sizeof(__int64) ? InterlockedExchangeAdd64((__int64 *)(_v), (_i)) : \
+ sizeof *(_v) == sizeof(long) ? InterlockedAdd ((long *) (_v), (_i)) : \
+ sizeof *(_v) == sizeof(__int64) ? InterlockedAdd64((__int64 *)(_v), (_i)) : \
(assert(!"should not get here"), 0))
#define p_atomic_cmpxchg(_v, _old, _new) (\
More information about the mesa-commit
mailing list