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