summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter/OptionValueArgs.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-11-17 18:08:12 +0000
committerZachary Turner <zturner@google.com>2016-11-17 18:08:12 +0000
commit31d97a5c8ab78c619deada0cdb1fcf64021d25dd (patch)
treea1f642a22b8975a80013c7ab8bc98a7ea763346e /lldb/source/Interpreter/OptionValueArgs.cpp
parentff0382c16190cd2b1bc47b27c5db0570b90f1d39 (diff)
downloadbcm5719-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.cpp15
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();
}
OpenPOWER on IntegriCloud