Lines Matching defs:edge
308 // Bindings on edges are rare, so allocate per-edge envs only when needed.
321 Edge* edge = state_->AddEdge(rule);
322 edge->env_ = env;
324 string pool_name = edge->GetBinding("pool");
329 edge->pool_ = pool;
332 edge->outputs_.reserve(outs.size());
339 if (!state_->AddOut(edge, path, slash_bits)) {
356 if (edge->outputs_.empty()) {
357 // All outputs of the edge are already created by other edges. Don't add
358 // this edge. Do this check before input nodes are connected to the edge.
360 delete edge;
363 edge->implicit_outs_ = implicit_outs;
365 edge->inputs_.reserve(ins.size());
372 state_->AddIn(edge, path, slash_bits);
374 edge->implicit_deps_ = implicit;
375 edge->order_only_deps_ = order_only;
377 edge->validations_.reserve(validations.size());
385 state_->AddValidation(edge, path, slash_bits);
389 edge->maybe_phonycycle_diagnostic()) {
394 Node* out = edge->outputs_[0];
396 remove(edge->inputs_.begin(), edge->inputs_.end(), out);
397 if (new_end != edge->inputs_.end()) {
398 edge->inputs_.erase(new_end, edge->inputs_.end());
410 string dyndep = edge->GetUnescapedDyndep();
414 edge->dyndep_ = state_->GetNode(dyndep, slash_bits);
415 edge->dyndep_->set_dyndep_pending(true);
417 std::find(edge->inputs_.begin(), edge->inputs_.end(), edge->dyndep_);
418 if (dgi == edge->inputs_.end()) {
421 assert(!edge->dyndep_->generated_by_dep_loader());