summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2016-06-29 18:31:44 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2016-07-05 08:29:37 +0000
commit12565865c2c2d4dc459cc504079cabe68d705cda (patch)
tree5efe714341196e1526948d957ffb4c34c3a68fa6
parent154e075d3cc8797641d8fbbec5c564289412a4f6 (diff)
Remove superfluous set of leaves
Change-Id: Ic50996b4299ddae49a853466a679689943bc10ca Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
-rw-r--r--src/jomlib/dependencygraph.cpp23
-rw-r--r--src/jomlib/dependencygraph.h3
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;
};