diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2016-06-29 18:31:44 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2016-07-05 08:29:37 +0000 |
commit | 12565865c2c2d4dc459cc504079cabe68d705cda (patch) | |
tree | 5efe714341196e1526948d957ffb4c34c3a68fa6 | |
parent | 154e075d3cc8797641d8fbbec5c564289412a4f6 (diff) |
Remove superfluous set of leaves
Change-Id: Ic50996b4299ddae49a853466a679689943bc10ca
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
-rw-r--r-- | src/jomlib/dependencygraph.cpp | 23 | ||||
-rw-r--r-- | src/jomlib/dependencygraph.h | 3 |
2 files changed, 10 insertions, 16 deletions
diff --git a/src/jomlib/dependencygraph.cpp b/src/jomlib/dependencygraph.cpp index 1807e72..3d3ddb9 100644 --- a/src/jomlib/dependencygraph.cpp +++ b/src/jomlib/dependencygraph.cpp @@ -195,10 +195,8 @@ void DependencyGraph::internalBuild(Node *node, QSet<Node *> &seen) internalBuild(child, seen); } - if (node->children.isEmpty() && !m_leavesSet.contains(node)) { - m_leavesSet.insert(node); - m_leavesList.append(node); - } + if (node->children.isEmpty()) + m_leaves.append(node); } void DependencyGraph::dump() @@ -241,8 +239,7 @@ void DependencyGraph::clear() m_root = 0; qDeleteAll(m_nodeContainer); m_nodeContainer.clear(); - m_leavesSet.clear(); - m_leavesList.clear(); + m_leaves.clear(); } void DependencyGraph::addEdge(Node* parent, Node* child) @@ -270,8 +267,7 @@ void DependencyGraph::removeLeaf(Node* node) Q_ASSERT(node); Q_ASSERT(node->children.isEmpty()); - m_leavesSet.remove(node); - m_leavesList.removeAll(node); + m_leaves.removeAll(node); QList<Node*>::iterator it; foreach (Node* parent, node->parents) { @@ -279,8 +275,7 @@ void DependencyGraph::removeLeaf(Node* node) parent->children.erase(it); if (parent->children.isEmpty()) { m_bDirtyLeaves = true; - m_leavesSet.insert(parent); - m_leavesList.append(parent); + m_leaves.append(parent); } } deleteNode(node); @@ -288,7 +283,7 @@ void DependencyGraph::removeLeaf(Node* node) DescriptionBlock *DependencyGraph::findAvailableTarget(bool ignoreTimeStamps) { - if (m_leavesSet.isEmpty()) + if (m_leaves.isEmpty()) return 0; if (!ignoreTimeStamps) { @@ -296,7 +291,7 @@ DescriptionBlock *DependencyGraph::findAvailableTarget(bool ignoreTimeStamps) QList<Node *> upToDateNodes; while (m_bDirtyLeaves) { m_bDirtyLeaves = false; - foreach (Node *leaf, m_leavesList) + foreach (Node *leaf, m_leaves) if (leaf->state != Node::ExecutingState && isTargetUpToDate(leaf->target)) upToDateNodes.append(leaf); foreach (Node *leaf, upToDateNodes) { @@ -310,7 +305,7 @@ DescriptionBlock *DependencyGraph::findAvailableTarget(bool ignoreTimeStamps) // apply inference rules separated by makefiles QSet<Makefile*> makefileSet; QMultiHash<Makefile*, DescriptionBlock*> multiHash; - foreach (Node *leaf, m_leavesList) { + foreach (Node *leaf, m_leaves) { makefileSet.insert(leaf->target->makefile()); multiHash.insert(leaf->target->makefile(), leaf->target); } @@ -318,7 +313,7 @@ DescriptionBlock *DependencyGraph::findAvailableTarget(bool ignoreTimeStamps) mf->applyInferenceRules(multiHash.values(mf)); // return the first leaf that is not currently executed - foreach (Node *leaf, m_leavesList) { + foreach (Node *leaf, m_leaves) { if (leaf->state != Node::ExecutingState) { leaf->state = Node::ExecutingState; displayNodeBuildInfo(leaf, ignoreTimeStamps ? isTargetUpToDate(leaf->target) : false); diff --git a/src/jomlib/dependencygraph.h b/src/jomlib/dependencygraph.h index f94e32d..89bc782 100644 --- a/src/jomlib/dependencygraph.h +++ b/src/jomlib/dependencygraph.h @@ -72,8 +72,7 @@ private: private: Node* m_root; QHash<DescriptionBlock*, Node*> m_nodeContainer; - QSet<Node*> m_leavesSet; - QList<Node*> m_leavesList; + QList<Node *> m_leaves; bool m_bDirtyLeaves; }; |