aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2016-02-08 18:47:26 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2016-02-08 18:47:26 +0900
commitf3c9bbc015468207baa785695b0f3ce4f4b4e8fa (patch)
tree540d47f874dc8a9d27646843d0ec4b8ca534b594
parent772ff7f43be3b7c1900ed4cfba4c6a7bc7a0e389 (diff)
downloadplatform_build_kati-f3c9bbc015468207baa785695b0f3ce4f4b4e8fa.tar.gz
platform_build_kati-f3c9bbc015468207baa785695b0f3ce4f4b4e8fa.tar.bz2
platform_build_kati-f3c9bbc015468207baa785695b0f3ce4f4b4e8fa.zip
[C++] Reduce unnecessary Intern from CallFunc
-rw-r--r--func.cc17
1 files changed, 9 insertions, 8 deletions
diff --git a/func.cc b/func.cc
index 39af0e9..49115d4 100644
--- a/func.cc
+++ b/func.cc
@@ -574,8 +574,9 @@ void ShellFunc(const vector<Value*>& args, Evaluator* ev, string* s) {
}
void CallFunc(const vector<Value*>& args, Evaluator* ev, string* s) {
- static const string tmpvar_names[] = {
- "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
+ static const Symbol tmpvar_names[] = {
+ Intern("0"), Intern("1"), Intern("2"), Intern("3"), Intern("4"),
+ Intern("5"), Intern("6"), Intern("7"), Intern("8"), Intern("9")
};
const string&& func_name = args[0]->Eval(ev);
@@ -593,25 +594,25 @@ void CallFunc(const vector<Value*>& args, Evaluator* ev, string* s) {
vector<unique_ptr<ScopedVar>> sv;
for (size_t i = 1; ; i++) {
string s;
- StringPiece tmpvar_name;
+ Symbol tmpvar_name_sym(Symbol::IsUninitialized{});
if (i < sizeof(tmpvar_names)/sizeof(tmpvar_names[0])) {
- tmpvar_name = tmpvar_names[i];
+ tmpvar_name_sym = tmpvar_names[i];
} else {
s = StringPrintf("%d", i);
- tmpvar_name = s;
+ tmpvar_name_sym = Intern(s);
}
if (i < args.size()) {
sv.emplace_back(new ScopedVar(ev->mutable_vars(),
- Intern(tmpvar_name), av[i-1].get()));
+ tmpvar_name_sym, av[i-1].get()));
} else {
// We need to blank further automatic vars
- Var *v = ev->LookupVar(Intern(tmpvar_name));
+ Var *v = ev->LookupVar(tmpvar_name_sym);
if (!v->IsDefined()) break;
if (v->Origin() != VarOrigin::AUTOMATIC) break;
av.emplace_back(new SimpleVar("", VarOrigin::AUTOMATIC));
sv.emplace_back(new ScopedVar(ev->mutable_vars(),
- Intern(tmpvar_name), av[i-1].get()));
+ tmpvar_name_sym, av[i-1].get()));
}
}