From 4c1b1f2ad884455bdebc779b6dcab5dd3815a9c9 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 17 Jun 2022 23:05:09 -0700 Subject: QMetaType: use explicit load/store operations on QBasicAtomicInt QBasicAtomicInt::operator int() does loadAcquire() and operator=() does storeRelease(). Pick-to: 6.2 6.3 6.4 Change-Id: Id0fb9ab0089845ee8843fffd16f9a1ece6823777 Reviewed-by: Fabian Kosmale --- src/corelib/kernel/qmetatype.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/corelib/kernel/qmetatype.cpp') diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 58a8ed98e9..c78ef4c916 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -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) -- cgit v1.2.3