summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-04-26 14:34:13 (GMT)
committerStephen Kelly <steveire@gmail.com>2015-04-29 20:49:05 (GMT)
commit818bf727c1eb4a500decb5856715a964c948242e (patch)
tree84c13db2a61b91b3b2e90db5626a6ad6449269b5
parent5067ae41b03442a7dba9210595e782678835a3ff (diff)
downloadCMake-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.cxx7
-rw-r--r--Source/cmDefinitions.h2
-rw-r--r--Source/cmMakefile.cxx10
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);