diff options
author | Zachary Turner <zturner@google.com> | 2016-11-08 04:52:16 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2016-11-08 04:52:16 +0000 |
commit | c5d7df90356b1b3d1e384220e34ba5cb87583829 (patch) | |
tree | 8ebeb702da0ed90c6e328c1d1336a3724a409742 /lldb/source/Expression/UserExpression.cpp | |
parent | 77c89b6958f51a0b26c4849d37a200c1bc0319df (diff) | |
download | bcm5719-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.cpp | 28 |
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(); |