summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/UserExpression.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-11-08 04:52:16 +0000
committerZachary Turner <zturner@google.com>2016-11-08 04:52:16 +0000
commitc5d7df90356b1b3d1e384220e34ba5cb87583829 (patch)
tree8ebeb702da0ed90c6e328c1d1336a3724a409742 /lldb/source/Expression/UserExpression.cpp
parent77c89b6958f51a0b26c4849d37a200c1bc0319df (diff)
downloadbcm5719-llvm-c5d7df90356b1b3d1e384220e34ba5cb87583829.tar.gz
bcm5719-llvm-c5d7df90356b1b3d1e384220e34ba5cb87583829.zip
Convert some Expression parser functions to StringRef.
llvm-svn: 286208
Diffstat (limited to 'lldb/source/Expression/UserExpression.cpp')
-rw-r--r--lldb/source/Expression/UserExpression.cpp28
1 files changed, 13 insertions, 15 deletions
diff --git a/lldb/source/Expression/UserExpression.cpp b/lldb/source/Expression/UserExpression.cpp
index 52ef6fa7003..041caf57bd3 100644
--- a/lldb/source/Expression/UserExpression.cpp
+++ b/lldb/source/Expression/UserExpression.cpp
@@ -47,13 +47,12 @@
using namespace lldb_private;
UserExpression::UserExpression(ExecutionContextScope &exe_scope,
- const char *expr, const char *expr_prefix,
+ llvm::StringRef expr, llvm::StringRef prefix,
lldb::LanguageType language,
ResultType desired_type,
const EvaluateExpressionOptions &options)
- : Expression(exe_scope), m_expr_text(expr),
- m_expr_prefix(expr_prefix ? expr_prefix : ""), m_language(language),
- m_desired_type(desired_type), m_options(options) {}
+ : Expression(exe_scope), m_expr_text(expr), m_expr_prefix(prefix),
+ m_language(language), m_desired_type(desired_type), m_options(options) {}
UserExpression::~UserExpression() {}
@@ -140,7 +139,7 @@ lldb::addr_t UserExpression::GetObjectPointer(lldb::StackFrameSP frame_sp,
lldb::ExpressionResults UserExpression::Evaluate(
ExecutionContext &exe_ctx, const EvaluateExpressionOptions &options,
- const char *expr_cstr, const char *expr_prefix,
+ llvm::StringRef expr, llvm::StringRef prefix,
lldb::ValueObjectSP &result_valobj_sp, Error &error, uint32_t line_offset,
std::string *fixed_expression, lldb::ModuleSP *jit_module_sp_ptr) {
Log *log(lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_EXPRESSIONS |
@@ -187,16 +186,15 @@ lldb::ExpressionResults UserExpression::Evaluate(
ThreadList::ExpressionExecutionThreadPusher execution_thread_pusher(
thread_sp);
- const char *full_prefix = NULL;
- const char *option_prefix = options.GetPrefix();
+ llvm::StringRef full_prefix;
+ llvm::StringRef option_prefix(options.GetPrefix());
std::string full_prefix_storage;
- if (expr_prefix && option_prefix) {
- full_prefix_storage.assign(expr_prefix);
+ if (!prefix.empty() && !option_prefix.empty()) {
+ full_prefix_storage = prefix;
full_prefix_storage.append(option_prefix);
- if (!full_prefix_storage.empty())
- full_prefix = full_prefix_storage.c_str();
- } else if (expr_prefix)
- full_prefix = expr_prefix;
+ full_prefix = full_prefix_storage;
+ } else if (!prefix.empty())
+ full_prefix = prefix;
else
full_prefix = option_prefix;
@@ -211,7 +209,7 @@ lldb::ExpressionResults UserExpression::Evaluate(
}
lldb::UserExpressionSP user_expression_sp(
- target->GetUserExpressionForLanguage(expr_cstr, full_prefix, language,
+ target->GetUserExpressionForLanguage(expr, full_prefix, language,
desired_type, options, error));
if (error.Fail()) {
if (log)
@@ -222,7 +220,7 @@ lldb::ExpressionResults UserExpression::Evaluate(
if (log)
log->Printf("== [UserExpression::Evaluate] Parsing expression %s ==",
- expr_cstr);
+ expr.str().c_str());
const bool keep_expression_in_memory = true;
const bool generate_debug_info = options.GetGenerateDebugInfo();
OpenPOWER on IntegriCloud