Make loadAcquire const.
Change-Id: Iad2d60d1abe363a3b85eaf152861d0979a997d81 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
eb4828bbfd
commit
3f1a4be302
@ -84,7 +84,7 @@ template <typename T> struct QAtomicOps: QGenericAtomicOps<QAtomicOps<T> >
|
|||||||
typedef T Type;
|
typedef T Type;
|
||||||
|
|
||||||
#ifndef __ia64__
|
#ifndef __ia64__
|
||||||
static T loadAcquire(T &_q_value)
|
static T loadAcquire(const T &_q_value)
|
||||||
{
|
{
|
||||||
T tmp = _q_value;
|
T tmp = _q_value;
|
||||||
__sync_synchronize();
|
__sync_synchronize();
|
||||||
|
@ -143,9 +143,9 @@ template <int size> struct QBasicAtomicOps: QGenericAtomicOps<QBasicAtomicOps<si
|
|||||||
static void orderedMemoryFence();
|
static void orderedMemoryFence();
|
||||||
|
|
||||||
template <typename T> static inline
|
template <typename T> static inline
|
||||||
T loadAcquire(T &_q_value)
|
T loadAcquire(const T &_q_value)
|
||||||
{
|
{
|
||||||
return *static_cast<volatile T *>(&_q_value);
|
return *static_cast<const volatile T *>(&_q_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T> static inline
|
template <typename T> static inline
|
||||||
|
@ -136,7 +136,7 @@ public:
|
|||||||
|
|
||||||
// Atomic API, implemented in qatomic_XXX.h
|
// Atomic API, implemented in qatomic_XXX.h
|
||||||
|
|
||||||
T loadAcquire() { return Ops::loadAcquire(_q_value); }
|
T loadAcquire() const { return Ops::loadAcquire(_q_value); }
|
||||||
void storeRelease(T newValue) { Ops::storeRelease(_q_value, newValue); }
|
void storeRelease(T newValue) { Ops::storeRelease(_q_value, newValue); }
|
||||||
|
|
||||||
static bool isReferenceCountingNative() { return Ops::isReferenceCountingNative(); }
|
static bool isReferenceCountingNative() { return Ops::isReferenceCountingNative(); }
|
||||||
@ -206,7 +206,7 @@ public:
|
|||||||
void store(Type newValue) { _q_value = newValue; }
|
void store(Type newValue) { _q_value = newValue; }
|
||||||
|
|
||||||
// Atomic API, implemented in qatomic_XXX.h
|
// Atomic API, implemented in qatomic_XXX.h
|
||||||
Type loadAcquire() { return Ops::loadAcquire(_q_value); }
|
Type loadAcquire() const { return Ops::loadAcquire(_q_value); }
|
||||||
void storeRelease(Type newValue) { Ops::storeRelease(_q_value, newValue); }
|
void storeRelease(Type newValue) { Ops::storeRelease(_q_value, newValue); }
|
||||||
|
|
||||||
static bool isTestAndSetNative() { return Ops::isTestAndSetNative(); }
|
static bool isTestAndSetNative() { return Ops::isTestAndSetNative(); }
|
||||||
|
@ -85,7 +85,7 @@ template <typename BaseClass> struct QGenericAtomicOps
|
|||||||
static void orderedMemoryFence() { }
|
static void orderedMemoryFence() { }
|
||||||
|
|
||||||
template <typename T> static inline always_inline
|
template <typename T> static inline always_inline
|
||||||
T load(T &_q_value)
|
T load(const T &_q_value)
|
||||||
{
|
{
|
||||||
return _q_value;
|
return _q_value;
|
||||||
}
|
}
|
||||||
@ -97,9 +97,9 @@ template <typename BaseClass> struct QGenericAtomicOps
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename T> static inline always_inline
|
template <typename T> static inline always_inline
|
||||||
T loadAcquire(T &_q_value)
|
T loadAcquire(const T &_q_value)
|
||||||
{
|
{
|
||||||
T tmp = *static_cast<volatile T *>(&_q_value);
|
T tmp = *static_cast<const volatile T *>(&_q_value);
|
||||||
BaseClass::acquireMemoryFence();
|
BaseClass::acquireMemoryFence();
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user