summaryrefslogtreecommitdiffstats
path: root/Source/cmDefinitions.h
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2014-03-12 18:01:45 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2014-06-09 18:46:45 (GMT)
commit5abfde6cb8a1ae0b2825797eab6c2e9842eb7c49 (patch)
tree9d9b686577045406f0afdc5af93acb523929c1eb /Source/cmDefinitions.h
parent9e8fa1043ce9bfcffdcfa395f618dd7958ef4251 (diff)
downloadCMake-5abfde6cb8a1ae0b2825797eab6c2e9842eb7c49.zip
CMake-5abfde6cb8a1ae0b2825797eab6c2e9842eb7c49.tar.gz
CMake-5abfde6cb8a1ae0b2825797eab6c2e9842eb7c49.tar.bz2
cmDefinitions: Don't store parent lookups
When looking up scopes, it is faster to not store the lookup locally to keep the maps smaller and avoid extra allocations and rebalancing.
Diffstat (limited to 'Source/cmDefinitions.h')
-rw-r--r--Source/cmDefinitions.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/Source/cmDefinitions.h b/Source/cmDefinitions.h
index d615fb0..ebe6fa5 100644
--- a/Source/cmDefinitions.h
+++ b/Source/cmDefinitions.h
@@ -33,9 +33,11 @@ public:
/** Returns the parent scope, if any. */
cmDefinitions* GetParent() const { return this->Up; }
- /** Get the value associated with a key; null if none.
- Store the result locally if it came from a parent. */
- const char* Get(const std::string& key);
+ /** Get the value associated with a key; null if none. */
+ const char* Get(const std::string& key) const;
+
+ /** Pull a variable from the parent. */
+ void Pull(const std::string& key);
/** Set (or unset if null) a value associated with a key. */
const char* Set(const std::string& key, const char* value);
@@ -73,7 +75,7 @@ private:
MapType Map;
// Internal query and update methods.
- Def const& GetInternal(const std::string& key);
+ Def const& GetInternal(const std::string& key) const;
Def const& SetInternal(const std::string& key, Def const& def);
// Implementation of Closure() method.