|
|
01fa84 |
Description: Fix aarch64 atomic test and set to set the right value.
|
|
|
01fa84 |
QBasicAtomicInt::testAndSetRelaxed and
|
|
|
01fa84 |
QBasicAtomicPointer<T>::testAndSetRelaxed would previously set the
|
|
|
01fa84 |
target to a local stack frame pointer to the new value, rather than to
|
|
|
01fa84 |
the new value itself.
|
|
|
01fa84 |
Author: William Grant <wgrant@ubuntu.com>
|
|
|
01fa84 |
|
|
|
01fa84 |
Index: qt4-x11-4.8.4+dfsg/src/corelib/arch/qatomic_aarch64.h
|
|
|
01fa84 |
===================================================================
|
|
|
01fa84 |
--- qt4-x11-4.8.4+dfsg.orig/src/corelib/arch/qatomic_aarch64.h 2013-10-13 22:23:58.000000000 +1100
|
|
|
01fa84 |
+++ qt4-x11-4.8.4+dfsg/src/corelib/arch/qatomic_aarch64.h 2013-10-13 22:24:56.810788571 +1100
|
|
|
01fa84 |
@@ -135,7 +135,7 @@
|
|
|
01fa84 |
bool val;
|
|
|
01fa84 |
|
|
|
01fa84 |
Q_COMPILER_MEMORY_BARRIER;
|
|
|
01fa84 |
- val = __atomic_compare_exchange_n (&_q_value, &expectedValue, &newValue,
|
|
|
01fa84 |
+ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue,
|
|
|
01fa84 |
false, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
|
|
|
01fa84 |
Q_COMPILER_MEMORY_BARRIER;
|
|
|
01fa84 |
return val;
|
|
|
01fa84 |
@@ -164,7 +164,7 @@
|
|
|
01fa84 |
{
|
|
|
01fa84 |
bool val;
|
|
|
01fa84 |
Q_COMPILER_MEMORY_BARRIER;
|
|
|
01fa84 |
- val = __atomic_compare_exchange_n (&_q_value, &expectedValue, &newValue,
|
|
|
01fa84 |
+ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue,
|
|
|
01fa84 |
false, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
|
|
|
01fa84 |
Q_COMPILER_MEMORY_BARRIER;
|
|
|
01fa84 |
return val;
|