Cleanup: Make stack a const ref now that it's no longer modified.
authorNico Weber <nicolasweber@gmx.de>
Wed, 1 Apr 2015 14:59:38 +0000 (07:59 -0700)
committerNico Weber <nicolasweber@gmx.de>
Wed, 1 Apr 2015 14:59:38 +0000 (07:59 -0700)
src/build.cc
src/build.h

index 574aecc..c51ce53 100644 (file)
@@ -278,7 +278,7 @@ bool Plan::AddSubTarget(Node* node, vector<Node*>* stack, string* err) {
     return false;
   }
 
-  if (CheckDependencyCycle(node, stack, err))
+  if (CheckDependencyCycle(node, *stack, err))
     return false;
 
   if (edge->outputs_ready())
@@ -316,15 +316,16 @@ bool Plan::AddSubTarget(Node* node, vector<Node*>* stack, string* err) {
   return true;
 }
 
-bool Plan::CheckDependencyCycle(Node* node, vector<Node*>* stack, string* err) {
-  vector<Node*>::reverse_iterator ri =
-      find(stack->rbegin(), stack->rend(), node);
-  if (ri == stack->rend())
+bool Plan::CheckDependencyCycle(Node* node, const vector<Node*>& stack,
+                                string* err) {
+  vector<Node*>::const_reverse_iterator ri =
+      find(stack.rbegin(), stack.rend(), node);
+  if (ri == stack.rend())
     return false;
 
-  vector<Node*>::iterator start = find(stack->begin(), stack->end(), node);
+  vector<Node*>::const_iterator start = find(stack.begin(), stack.end(), node);
   *err = "dependency cycle: ";
-  for (vector<Node*>::iterator i = start; i != stack->end(); ++i) {
+  for (vector<Node*>::const_iterator i = start; i != stack.end(); ++i) {
     err->append((*i)->path());
     err->append(" -> ");
   }
index 5d5db80..4b48c5f 100644 (file)
@@ -69,7 +69,8 @@ struct Plan {
 
 private:
   bool AddSubTarget(Node* node, vector<Node*>* stack, string* err);
-  bool CheckDependencyCycle(Node* node, vector<Node*>* stack, string* err);
+  bool CheckDependencyCycle(Node* node, const vector<Node*>& stack,
+                            string* err);
   void NodeFinished(Node* node);
 
   /// Submits a ready edge as a candidate for execution.