Message ID | 20210403211902.2123960-1-martin@martin.st |
---|---|
State | Accepted |
Headers | show |
Series | [FFmpeg-devel] atomics: Fix the win32 atomic_exchange function | expand |
Context | Check | Description |
---|---|---|
andriy/x86_make | success | Make finished |
andriy/x86_make_fate | success | Make fate finished |
andriy/PPC64_make | success | Make finished |
andriy/PPC64_make_fate | success | Make fate finished |
On 4/3/2021 6:19 PM, Martin Storsjö wrote: > This fixes building with MSVC after > a2a38b160620d91bc3f895dadc4501c589998b9c. > > Remove the stray semicolon, and add casts for the input argument > (which is an intptr_t*) to the right type (void *volatile *). > --- > compat/atomics/win32/stdatomic.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/compat/atomics/win32/stdatomic.h b/compat/atomics/win32/stdatomic.h > index bb8e6e7e15..9e91e27262 100644 > --- a/compat/atomics/win32/stdatomic.h > +++ b/compat/atomics/win32/stdatomic.h > @@ -96,7 +96,7 @@ do { \ > atomic_load(object) > > #define atomic_exchange(object, desired) \ > - InterlockedExchangePointer(object, desired); > + InterlockedExchangePointer((void *volatile *)object, (void *)desired) nit: PVOID instead of void*, same as elsewhere in this file, and how it's documented in the official docs. > > #define atomic_exchange_explicit(object, desired, order) \ > atomic_exchange(object, desired) >
diff --git a/compat/atomics/win32/stdatomic.h b/compat/atomics/win32/stdatomic.h index bb8e6e7e15..9e91e27262 100644 --- a/compat/atomics/win32/stdatomic.h +++ b/compat/atomics/win32/stdatomic.h @@ -96,7 +96,7 @@ do { \ atomic_load(object) #define atomic_exchange(object, desired) \ - InterlockedExchangePointer(object, desired); + InterlockedExchangePointer((void *volatile *)object, (void *)desired) #define atomic_exchange_explicit(object, desired, order) \ atomic_exchange(object, desired)