QMetaType: use explicit load/store operations on QBasicAtomicInt

QBasicAtomicInt::operator int() does loadAcquire() and operator=() does
storeRelease().

Change-Id: Id0fb9ab0089845ee8843fffd16f9a1ece6823777
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 4c1b1f2ad884455bdebc779b6dcab5dd3815a9c9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Thiago Macieira 2022-06-17 23:05:09 -07:00 committed by Qt Cherry-pick Bot
parent 3cb900a18f
commit 4afbbfdfde

View File

@ -79,8 +79,8 @@ struct QMetaTypeCustomRegistry
{
{
QWriteLocker l(&lock);
if (ti->typeId)
return ti->typeId;
if (int id = ti->typeId.loadRelaxed())
return id;
QByteArray name =
#ifndef QT_NO_QOBJECT
QMetaObject::normalizedType
@ -101,11 +101,11 @@ struct QMetaTypeCustomRegistry
registry.append(ti);
firstEmpty = registry.size();
}
ti->typeId = firstEmpty + QMetaType::User;
ti->typeId.storeRelaxed(firstEmpty + QMetaType::User);
}
if (ti->legacyRegisterOp)
ti->legacyRegisterOp();
return ti->typeId;
return ti->typeId.loadRelaxed();
};
void unregisterDynamicType(int id)