diff options
author | Brad King <brad.king@kitware.com> | 2022-06-16 18:47:40 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-07-05 20:34:57 (GMT) |
commit | 1ee5a4a548c62e5c382f3497be82aac36a99e485 (patch) | |
tree | 5a95ec119c06a3cac5c83edb5bc4548d929c89e6 /Source/cmArgumentParser.cxx | |
parent | fd3ed41109db9682bbdcb5e5d3249b6654322ca6 (diff) | |
download | CMake-1ee5a4a548c62e5c382f3497be82aac36a99e485.zip CMake-1ee5a4a548c62e5c382f3497be82aac36a99e485.tar.gz CMake-1ee5a4a548c62e5c382f3497be82aac36a99e485.tar.bz2 |
cmArgumentParser: Avoid allocating copies of keyword strings
Diffstat (limited to 'Source/cmArgumentParser.cxx')
-rw-r--r-- | Source/cmArgumentParser.cxx | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Source/cmArgumentParser.cxx b/Source/cmArgumentParser.cxx index 4624f1c..bc91b01 100644 --- a/Source/cmArgumentParser.cxx +++ b/Source/cmArgumentParser.cxx @@ -60,17 +60,17 @@ void Instance::Bind(MultiStringList& val) void Instance::Consume(cm::string_view arg, void* result, std::vector<std::string>* unparsedArguments, - std::vector<std::string>* keywordsMissingValue, - std::vector<std::string>* parsedKeywords) + std::vector<cm::string_view>* keywordsMissingValue, + std::vector<cm::string_view>* parsedKeywords) { auto const it = this->Bindings.Find(arg); if (it != this->Bindings.end()) { if (parsedKeywords != nullptr) { - parsedKeywords->emplace_back(arg); + parsedKeywords->emplace_back(it->first); } it->second(*this, result); if (this->ExpectValue && keywordsMissingValue != nullptr) { - keywordsMissingValue->emplace_back(arg); + keywordsMissingValue->emplace_back(it->first); } return; } |