15 for (
int oldVersion = m_minMinorVersion.loadRelaxed();
16 oldVersion > version && !m_minMinorVersion.testAndSetOrdered(oldVersion, version);
17 oldVersion = m_minMinorVersion.loadRelaxed()) {
20 for (
int oldVersion = m_maxMinorVersion.loadRelaxed();
21 oldVersion < version && !m_maxMinorVersion.testAndSetOrdered(oldVersion, version);
22 oldVersion = m_maxMinorVersion.loadRelaxed()) {
28 QMutexLocker lock(&m_mutex);
30 if (type->version.hasMinorVersion())
31 addMinorVersion(type->version.minorVersion());
33 QList<QQmlTypePrivate *> &list = m_typeHash[type->elementName];
34 for (
int ii = 0; ii < list.size(); ++ii) {
35 QQmlTypePrivate *in_list = list.at(ii);
37 if (in_list->version.minorVersion() < type->version.minorVersion()) {
38 list.insert(ii, type);
40 }
else if (in_list->version.minorVersion() == type->version.minorVersion()) {
68 QMutexLocker lock(&m_mutex);
69 for (
auto typeCandidates = m_typeHash.begin(), end = m_typeHash.end();
70 typeCandidates != end; ++typeCandidates) {
71 for (
auto type: typeCandidates.value()) {
72 if (type->regType == QQmlType::CompositeSingletonType)
73 callback(QQmlType(type));