From ffa1beb78feee904acefce74a6bba2e4cc5416cb Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Wed, 18 Mar 2015 12:35:57 -0400 Subject: Env should only be about variables. No behavior change. --- src/eval_env.h | 5 ++--- src/graph.cc | 5 ----- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/eval_env.h b/src/eval_env.h index 7b9bdf5..250fa55 100644 --- a/src/eval_env.h +++ b/src/eval_env.h @@ -28,7 +28,6 @@ struct Rule; struct Env { virtual ~Env() {} virtual string LookupVariable(const string& var) = 0; - virtual const Rule* LookupRule(const string& rule_name) = 0; }; /// A tokenized string that contains variable references. @@ -77,7 +76,7 @@ struct Rule { /// as well as a pointer to a parent scope. struct BindingEnv : public Env { BindingEnv() : parent_(NULL) {} - explicit BindingEnv(Env* parent) : parent_(parent) {} + explicit BindingEnv(BindingEnv* parent) : parent_(parent) {} virtual ~BindingEnv() {} virtual string LookupVariable(const string& var); @@ -100,7 +99,7 @@ struct BindingEnv : public Env { private: map bindings_; map rules_; - Env* parent_; + BindingEnv* parent_; }; #endif // NINJA_EVAL_ENV_H_ diff --git a/src/graph.cc b/src/graph.cc index 76c4e9a..e3253fd 100644 --- a/src/graph.cc +++ b/src/graph.cc @@ -207,7 +207,6 @@ struct EdgeEnv : public Env { EdgeEnv(Edge* edge, EscapeKind escape) : edge_(edge), escape_in_out_(escape) {} virtual string LookupVariable(const string& var); - virtual const Rule* LookupRule(const string& rule_name); /// Given a span of Nodes, construct a list of paths suitable for a command /// line. @@ -219,10 +218,6 @@ struct EdgeEnv : public Env { EscapeKind escape_in_out_; }; -const Rule* EdgeEnv::LookupRule(const string& rule_name) { - return NULL; -} - string EdgeEnv::LookupVariable(const string& var) { if (var == "in" || var == "in_newline") { int explicit_deps_count = edge_->inputs_.size() - edge_->implicit_deps_ - -- cgit v0.12 From bc38ef76ebfabe503b1b56a1e32827a851037766 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Wed, 18 Mar 2015 16:39:26 -0400 Subject: Add a missing &. (No behavior change, only used in tests.) --- src/eval_env.cc | 2 +- src/eval_env.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/eval_env.cc b/src/eval_env.cc index 8f5c8ee..e03a82e 100644 --- a/src/eval_env.cc +++ b/src/eval_env.cc @@ -74,7 +74,7 @@ bool Rule::IsReservedBinding(const string& var) { var == "rspfile_content"; } -const map BindingEnv::GetRules() const { +const map& BindingEnv::GetRules() const { return rules_; } diff --git a/src/eval_env.h b/src/eval_env.h index 250fa55..28c4d16 100644 --- a/src/eval_env.h +++ b/src/eval_env.h @@ -84,7 +84,7 @@ struct BindingEnv : public Env { void AddRule(const Rule* rule); const Rule* LookupRule(const string& rule_name); const Rule* LookupRuleCurrentScope(const string& rule_name); - const map GetRules() const; + const map& GetRules() const; void AddBinding(const string& key, const string& val); -- cgit v0.12