From 6476ac738ca029af95932f53b53f0705808eb80e Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Thu, 29 Sep 2011 11:50:08 +0200 Subject: Replace implicit QAtomic* casts with explicit load()/store() Change-Id: Ia7ef1a8e01001f203e409c710c977d6f4686342e Reviewed-by: Thiago Macieira --- src/corelib/tools/qsharedpointer.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/corelib/tools/qsharedpointer.cpp') diff --git a/src/corelib/tools/qsharedpointer.cpp b/src/corelib/tools/qsharedpointer.cpp index e9ae3cb4da9..34060926c7b 100644 --- a/src/corelib/tools/qsharedpointer.cpp +++ b/src/corelib/tools/qsharedpointer.cpp @@ -1238,9 +1238,9 @@ void QtSharedPointer::ExternalRefCountData::setQObjectShared(const QObject *obj, Q_ASSERT(obj); QObjectPrivate *d = QObjectPrivate::get(const_cast(obj)); - if (d->sharedRefcount) + if (d->sharedRefcount.load() != 0) qFatal("QSharedPointer: pointer %p already has reference counting", obj); - d->sharedRefcount = this; + d->sharedRefcount.store(this); // QObject decreases the refcount too, so increase it up weakref.ref(); @@ -1252,7 +1252,7 @@ QtSharedPointer::ExternalRefCountData *QtSharedPointer::ExternalRefCountData::ge QObjectPrivate *d = QObjectPrivate::get(const_cast(obj)); Q_ASSERT_X(!d->wasDeleted, "QWeakPointer", "Detected QWeakPointer creation in a QObject being deleted"); - ExternalRefCountData *that = d->sharedRefcount; + ExternalRefCountData *that = d->sharedRefcount.load(); if (that) { that->weakref.ref(); return that; @@ -1264,9 +1264,10 @@ QtSharedPointer::ExternalRefCountData *QtSharedPointer::ExternalRefCountData::ge x->weakref.store(2); // the QWeakPointer that called us plus the QObject itself if (!d->sharedRefcount.testAndSetRelease(0, x)) { delete x; - d->sharedRefcount->weakref.ref(); + x = d->sharedRefcount.loadAcquire(); + x->weakref.ref(); } - return d->sharedRefcount.loadAcquire(); + return x; } QT_END_NAMESPACE -- cgit v1.2.3