diff options
author | Stephen Kelly <steveire@gmail.com> | 2015-04-26 14:34:13 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2015-04-29 20:49:05 (GMT) |
commit | 818bf727c1eb4a500decb5856715a964c948242e (patch) | |
tree | 84c13db2a61b91b3b2e90db5626a6ad6449269b5 | |
parent | 5067ae41b03442a7dba9210595e782678835a3ff (diff) | |
download | CMake-818bf727c1eb4a500decb5856715a964c948242e.zip CMake-818bf727c1eb4a500decb5856715a964c948242e.tar.gz CMake-818bf727c1eb4a500decb5856715a964c948242e.tar.bz2 |
cmDefinitions: Change LocalKeys to return a vector.
This is more efficient and we lose nothing.
-rw-r--r-- | Source/cmDefinitions.cxx | 7 | ||||
-rw-r--r-- | Source/cmDefinitions.h | 2 | ||||
-rw-r--r-- | Source/cmMakefile.cxx | 10 |
3 files changed, 10 insertions, 9 deletions
diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx index d2b37bb..448ba9d 100644 --- a/Source/cmDefinitions.cxx +++ b/Source/cmDefinitions.cxx @@ -58,16 +58,17 @@ void cmDefinitions::Erase(const std::string& key) } //---------------------------------------------------------------------------- -std::set<std::string> cmDefinitions::LocalKeys() const +std::vector<std::string> cmDefinitions::LocalKeys() const { - std::set<std::string> keys; + std::vector<std::string> keys; + keys.reserve(this->Map.size()); // Consider local definitions. for(MapType::const_iterator mi = this->Map.begin(); mi != this->Map.end(); ++mi) { if (mi->second.Exists) { - keys.insert(mi->first); + keys.push_back(mi->first); } } return keys; diff --git a/Source/cmDefinitions.h b/Source/cmDefinitions.h index 13f885d..d21ec23 100644 --- a/Source/cmDefinitions.h +++ b/Source/cmDefinitions.h @@ -43,7 +43,7 @@ public: void Erase(const std::string& key); /** Get the set of all local keys. */ - std::set<std::string> LocalKeys() const; + std::vector<std::string> LocalKeys() const; /** Compute the closure of all defined keys with values. This flattens the scope. The result has no parent. */ diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 8754427..9209e49 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -89,7 +89,7 @@ public: } } - std::set<std::string> LocalKeys() const + std::vector<std::string> LocalKeys() const { return this->VarStack.top().LocalKeys(); } @@ -1901,8 +1901,8 @@ void cmMakefile::CheckForUnusedVariables() const { return; } - const std::set<std::string>& locals = this->Internal->LocalKeys(); - std::set<std::string>::const_iterator it = locals.begin(); + const std::vector<std::string>& locals = this->Internal->LocalKeys(); + std::vector<std::string>::const_iterator it = locals.begin(); for (; it != locals.end(); ++it) { this->CheckForUnused("out of scope", *it); @@ -4431,10 +4431,10 @@ void cmMakefile::PopScope() std::set<std::string> init = this->Internal->VarInitStack.top(); std::set<std::string> usage = this->Internal->VarUsageStack.top(); - const std::set<std::string>& locals = this->Internal->LocalKeys(); + const std::vector<std::string>& locals = this->Internal->LocalKeys(); // Remove initialization and usage information for variables in the local // scope. - std::set<std::string>::const_iterator it = locals.begin(); + std::vector<std::string>::const_iterator it = locals.begin(); for (; it != locals.end(); ++it) { init.erase(*it); |