Make loadAcquire const.

Change-Id: Iad2d60d1abe363a3b85eaf152861d0979a997d81
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Stephen Kelly 2012-02-28 15:46:01 +01:00 committed by Qt by Nokia
parent eb4828bbfd
commit 3f1a4be302
4 changed files with 8 additions and 8 deletions

View File

@ -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();

View File

@ -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

View File

@ -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(); }

View File

@ -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;
} }