diff options
author | Zachary Turner <zturner@google.com> | 2016-11-17 18:08:12 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2016-11-17 18:08:12 +0000 |
commit | 31d97a5c8ab78c619deada0cdb1fcf64021d25dd (patch) | |
tree | a1f642a22b8975a80013c7ab8bc98a7ea763346e /lldb/source/Interpreter/OptionValueArgs.cpp | |
parent | ff0382c16190cd2b1bc47b27c5db0570b90f1d39 (diff) | |
download | bcm5719-llvm-31d97a5c8ab78c619deada0cdb1fcf64021d25dd.tar.gz bcm5719-llvm-31d97a5c8ab78c619deada0cdb1fcf64021d25dd.zip |
Rewrite all Property related functions in terms of StringRef.
This was a bit tricky, especially for things like
OptionValueArray and OptionValueDictionary since they do some
funky string parsing. Rather than try to re-write line-by-line
I tried to make the StringRef usage idiomatic, even though
it meant often re-writing from scratch large blocks of code
in a different way while keeping true to the original intent.
The finished code is a big improvement though, and often much
shorter than the original code. All tests and unit tests
pass on Windows and Linux.
llvm-svn: 287242
Diffstat (limited to 'lldb/source/Interpreter/OptionValueArgs.cpp')
-rw-r--r-- | lldb/source/Interpreter/OptionValueArgs.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/lldb/source/Interpreter/OptionValueArgs.cpp b/lldb/source/Interpreter/OptionValueArgs.cpp index 2cc93ab3502..8edec77f9d2 100644 --- a/lldb/source/Interpreter/OptionValueArgs.cpp +++ b/lldb/source/Interpreter/OptionValueArgs.cpp @@ -19,17 +19,12 @@ using namespace lldb; using namespace lldb_private; size_t OptionValueArgs::GetArgs(Args &args) { - const uint32_t size = m_values.size(); - std::vector<const char *> argv; - for (uint32_t i = 0; i < size; ++i) { - const char *string_value = m_values[i]->GetStringValue(); - if (string_value) - argv.push_back(string_value); + args.Clear(); + for (auto value : m_values) { + llvm::StringRef string_value = value->GetStringValue(); + if (!string_value.empty()) + args.AppendArgument(string_value); } - if (argv.empty()) - args.Clear(); - else - args.SetArguments(argv.size(), &argv[0]); return args.GetArgumentCount(); } |