Lines Matching refs:stack
52 std::vector<Node*> stack;
63 stack.clear();
66 if (!RecomputeNodeDirty(node, &stack, &new_validation_nodes, err))
82 bool DependencyScan::RecomputeNodeDirty(Node* node, std::vector<Node*>* stack,
103 // If we encountered this edge earlier in the call stack we have a cycle.
104 if (!VerifyDAG(node, stack, err))
107 // Mark the edge temporarily while in the call stack.
109 stack->push_back(node);
128 if (!RecomputeNodeDirty(edge->dyndep_, stack, validation_nodes, err))
172 if (!RecomputeNodeDirty(*i, stack, validation_nodes, err))
217 // be in the call stack.
219 assert(stack->back() == node);
220 stack->pop_back();
225 bool DependencyScan::VerifyDAG(Node* node, vector<Node*>* stack, string* err) {
233 // We have this edge earlier in the call stack. Find it.
234 vector<Node*>::iterator start = stack->begin();
235 while (start != stack->end() && (*start)->in_edge() != edge)
237 assert(start != stack->end());
249 for (vector<Node*>::const_iterator i = start; i != stack->end(); ++i) {
255 if ((start + 1) == stack->end() && edge->maybe_phonycycle_diagnostic()) {
435 // The lookups_ vector is used as a stack of visited nodes/variables
437 // stack, leaving the node removes it.
440 // to never record the starting node in the stack when beginning a new