summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2015-07-04 01:02:43 +0000
committeremaste <emaste@FreeBSD.org>2015-07-04 01:02:43 +0000
commitcea4c167517a0678c7dbf92a0324088dcbac1035 (patch)
tree02de7f7c9d5a08ae1c4d3b4c98a565ff96cd52e6 /contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp
parent1756896fd2b99ede7ebeb8019d4004bdfeed3bbe (diff)
parent8037fa4ee916fa20b3c63cbf531f4ee7e1c76138 (diff)
downloadFreeBSD-src-cea4c167517a0678c7dbf92a0324088dcbac1035.zip
FreeBSD-src-cea4c167517a0678c7dbf92a0324088dcbac1035.tar.gz
Update LLDB snapshot to upstream r241361
Notable upstream commits (upstream revision in parens): - Add a JSON producer to LLDB (228636) - Don't crash on bad DWARF expression (228729) - Add support of DWARFv3 DW_OP_form_tls_address (231342) - Assembly profiler for MIPS64 (232619) - Handle FreeBSD/arm64 core files (233273) - Read/Write register for MIPS64 (233685) - Rework LLDB system initialization (233758) - SysV ABI for aarch64 (236098) - MIPS software single stepping (236696) - FreeBSD/arm live debugging support (237303) - Assembly profiler for mips32 (237420) - Parse function name from DWARF DW_AT_abstract_origin (238307) - Improve LLDB prompt handling (238313) - Add real time signals support to FreeBSDSignals (238316) - Fix race in IOHandlerProcessSTDIO (238423) - MIPS64 Branch instruction emulation for SW single stepping (238820) - Improve OSType initialization in elf object file's arch_spec (239148) - Emulation of MIPS64 floating-point branch instructions (239996) - ABI Plugin for MIPS32 (239997) - ABI Plugin for MIPS64 (240123) - MIPS32 branch emulation and single stepping (240373) - Improve instruction emulation based stack unwinding on ARM (240533) - Add branch emulation to aarch64 instruction emulator (240769)
Diffstat (limited to 'contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp')
-rw-r--r--contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp b/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp
index a1b80d8..63f006e 100644
--- a/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp
+++ b/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp
@@ -51,30 +51,30 @@ OptionValueString::DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uin
}
Error
-OptionValueString::SetValueFromCString (const char *value_cstr,
+OptionValueString::SetValueFromString (llvm::StringRef value,
VarSetOperationType op)
{
Error error;
- std::string value_str_no_quotes;
- if (value_cstr)
+ std::string value_str = value.str();
+ value = value.trim();
+ if (value.size() > 0)
{
- switch (value_cstr[0])
+ switch (value.front())
{
case '"':
case '\'':
{
- size_t len = strlen(value_cstr);
- if (len <= 1 || value_cstr[len-1] != value_cstr[0])
+ if (value.size() <= 1 || value.back() != value.front())
{
error.SetErrorString("mismatched quotes");
return error;
}
- value_str_no_quotes.assign (value_cstr + 1, len - 2);
- value_cstr = value_str_no_quotes.c_str();
+ value = value.drop_front().drop_back();
}
break;
}
+ value_str = value.str();
}
switch (op)
@@ -85,26 +85,26 @@ OptionValueString::SetValueFromCString (const char *value_cstr,
case eVarSetOperationRemove:
if (m_validator)
{
- error = m_validator(value_cstr,m_validator_baton);
+ error = m_validator(value_str.c_str(),m_validator_baton);
if (error.Fail())
return error;
}
- error = OptionValue::SetValueFromCString (value_cstr, op);
+ error = OptionValue::SetValueFromString (value, op);
break;
case eVarSetOperationAppend:
{
std::string new_value(m_current_value);
- if (value_cstr && value_cstr[0])
+ if (value.size() > 0)
{
if (m_options.Test (eOptionEncodeCharacterEscapeSequences))
{
std::string str;
- Args::EncodeEscapeSequences (value_cstr, str);
+ Args::EncodeEscapeSequences (value_str.c_str(), str);
new_value.append(str);
}
else
- new_value.append(value_cstr);
+ new_value.append(value);
}
if (m_validator)
{
@@ -126,18 +126,18 @@ OptionValueString::SetValueFromCString (const char *value_cstr,
case eVarSetOperationAssign:
if (m_validator)
{
- error = m_validator(value_cstr,m_validator_baton);
+ error = m_validator(value_str.c_str(), m_validator_baton);
if (error.Fail())
return error;
}
m_value_was_set = true;
if (m_options.Test (eOptionEncodeCharacterEscapeSequences))
{
- Args::EncodeEscapeSequences (value_cstr, m_current_value);
+ Args::EncodeEscapeSequences (value_str.c_str(), m_current_value);
}
else
{
- SetCurrentValue (value_cstr);
+ SetCurrentValue (value_str.c_str());
}
NotifyValueChanged();
break;
OpenPOWER on IntegriCloud