diff options
author | Sebastian Holtermann <sebholt@xwmw.org> | 2019-07-19 08:14:59 (GMT) |
---|---|---|
committer | Sebastian Holtermann <sebholt@xwmw.org> | 2019-07-24 09:11:25 (GMT) |
commit | e268840c0a5db59f97c0fbc77aaae621520b83a3 (patch) | |
tree | 780a80db3386e94e1957f3b3a25f8aac5a264106 /Source/cmDefinitions.cxx | |
parent | 451fd329a88f26bacce7e9939ef767876b385050 (diff) | |
download | CMake-e268840c0a5db59f97c0fbc77aaae621520b83a3.zip CMake-e268840c0a5db59f97c0fbc77aaae621520b83a3.tar.gz CMake-e268840c0a5db59f97c0fbc77aaae621520b83a3.tar.bz2 |
cmDefinitions: Add Unset and cm::string_view based Set methods
- The `cmDefinitions::Def` struct is simplified by removing an unused
constructor and the `std_string` type definition. The std::string value
becomes a member variable instead of being derived from.
- The `cmDefinitions::Unset` method is added that unsets a definition.
It has the same functionality as calling `cmDefinitions::Set` with a
`nullptr` value argument,
- The `cmDefinitions::Set` method gets an overloaded version that takes a
`cm::string_view` as value argument.
- The originl `cmDefinitions::Set` method with `const char*` argument is
refactored to either call the `cm::string_view` based `cmDefinitions::Set`
overload or `cmDefinitions::Unset`, depending on whether the value
`const char*` is a nullptr (`Unset`) or not (`Set`).
Diffstat (limited to 'Source/cmDefinitions.cxx')
-rw-r--r-- | Source/cmDefinitions.cxx | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx index 35cdc5a..42e70d6 100644 --- a/Source/cmDefinitions.cxx +++ b/Source/cmDefinitions.cxx @@ -36,7 +36,7 @@ const std::string* cmDefinitions::Get(const std::string& key, StackIter begin, StackIter end) { Def const& def = cmDefinitions::GetInternal(key, begin, end, false); - return def.Exists ? &def : nullptr; + return def.Exists ? &def.Value : nullptr; } void cmDefinitions::Raise(const std::string& key, StackIter begin, @@ -56,11 +56,16 @@ bool cmDefinitions::HasKey(const std::string& key, StackIter begin, return false; } -void cmDefinitions::Set(const std::string& key, const char* value) +void cmDefinitions::Set(const std::string& key, cm::string_view value) { this->Map[key] = Def(value); } +void cmDefinitions::Unset(const std::string& key) +{ + this->Map[key] = Def(); +} + std::vector<std::string> cmDefinitions::UnusedKeys() const { std::vector<std::string> keys; |