summaryrefslogtreecommitdiff
path: root/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2016-09-04 16:55:29 +0200
committerMarc Mutz <marc.mutz@kdab.com>2016-09-20 17:19:31 +0000
commitb1b57225dbc8733935697e1895631969e9a95376 (patch)
tree0a7f40c74bd90e83f6600ed361f7ace81b4e6f86 /src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp
parentdba42c925db368aa958c38c6a3481f18a57bd71f (diff)
downloadqtxmlpatterns-b1b57225dbc8733935697e1895631969e9a95376.tar.gz
Eradicate Java-style loops (II): QSetIterator -> C++11 ranged for
Java-style iterators are slower than STL-style ones, so they should not be used in library code. Replaced them with C++11 ranged for loops, adding qAsConst() as needed. Change-Id: I21b59daceafc62b94ebba56bfef1f050988b9c9f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp')
-rw-r--r--src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp25
1 files changed, 6 insertions, 19 deletions
diff --git a/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp b/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp
index 7cb925a..bf33af1 100644
--- a/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp
+++ b/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp
@@ -167,9 +167,7 @@ bool XsdValidatingInstanceReader::read()
// check IDREF occurrences
const QStringList ids = m_model->idIdRefBindingIds();
- QSetIterator<QString> it(m_idRefs);
- while (it.hasNext()) {
- const QString id = it.next();
+ for (const QString &id : qAsConst(m_idRefs)) {
if (!ids.contains(id)) {
error(QtXmlPatterns::tr("There is one IDREF value with no corresponding ID: %1.").arg(formatKeyword(id)));
return false;
@@ -750,9 +748,7 @@ bool XsdValidatingInstanceReader::validateElementComplexType(const XsdElement::P
bool hasIDAttribute = hasIDAttributeUse(complexType->attributeUses());
// 2
- QSetIterator<QXmlName> it(attributes);
- while (it.hasNext()) {
- const QXmlName attributeName = it.next();
+ for (const QXmlName &attributeName : attributes) {
// skip builtin attributes
if (attributeName == m_xsiNilName ||
@@ -1005,9 +1001,7 @@ bool XsdValidatingInstanceReader::validateKeyIdentityConstraint(const XsdElement
return false;
// 4.2.3
- QSetIterator<TargetNode> it(qualifiedNodeSet);
- while (it.hasNext()) {
- const TargetNode node = it.next();
+ for (const TargetNode node : qualifiedNodeSet) {
const QVector<QXmlItem> fieldItems = node.fieldItems();
for (int i = 0; i < fieldItems.count(); ++i) {
const QXmlNodeModelIndex index = fieldItems.at(i).toNodeModelIndex();
@@ -1037,16 +1031,11 @@ bool XsdValidatingInstanceReader::validateKeyRefIdentityConstraint(const XsdElem
const TargetNode::Set keySet = m_idcKeys.value(constraint->referencedKey()->name(m_namePool));
- QSetIterator<TargetNode> it(qualifiedNodeSet);
- while (it.hasNext()) {
- const TargetNode node = it.next();
+ for (const TargetNode &node : qualifiedNodeSet) {
bool foundMatching = false;
- QSetIterator<TargetNode> keyIt(keySet);
- while (keyIt.hasNext()) {
- const TargetNode keyNode = keyIt.next();
-
+ for (const TargetNode &keyNode : keySet) {
if (node.fieldsAreEqual(keyNode, m_namePool, m_context, &reflection)) {
foundMatching = true;
break;
@@ -1179,9 +1168,7 @@ bool XsdValidatingInstanceReader::selectNodeSets(const XsdElement::Ptr&, const Q
}
// copy all items from target node set to qualified node set, that have no empty fields
- QSetIterator<TargetNode> it(targetNodeSet);
- while (it.hasNext()) {
- const TargetNode node = it.next();
+ for (const TargetNode &node : qAsConst(targetNodeSet)) {
if (node.emptyFieldsCount() == 0)
qualifiedNodeSet.insert(node);
}