diff options
author | Raphael Isemann <teemperor@gmail.com> | 2018-07-13 18:13:46 +0000 |
---|---|---|
committer | Raphael Isemann <teemperor@gmail.com> | 2018-07-13 18:13:46 +0000 |
commit | d6c062bce1e499f52500cc759a7c0846dd178cda (patch) | |
tree | c8ee9f0016b0a47d30ba960de500d6ddaf1c06b9 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp | |
parent | 8e04d937b0656242162cebe96c8c306e0ab62959 (diff) | |
download | bcm5719-llvm-d6c062bce1e499f52500cc759a7c0846dd178cda.tar.gz bcm5719-llvm-d6c062bce1e499f52500cc759a7c0846dd178cda.zip |
No longer pass a StringRef to the Python API
Summary:
The refactoring patch for DoExecute missed this case of a variadic function that just silently
accepts a StringRef which it then tries to reinterpret as a C-string.
This should fix the Windows builds.
Reviewers: stella.stamenova
Reviewed By: stella.stamenova
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D49309
llvm-svn: 337030
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
-rw-r--r-- | lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp index e115057db8c..12cadff9351 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -753,6 +753,8 @@ static void ReadThreadBytesReceived(void *baton, const void *src, bool ScriptInterpreterPython::ExecuteOneLine( llvm::StringRef command, CommandReturnObject *result, const ExecuteScriptOptions &options) { + std::string command_str = command.str(); + if (!m_valid_session) return false; @@ -855,7 +857,7 @@ bool ScriptInterpreterPython::ExecuteOneLine( if (PyCallable_Check(m_run_one_line_function.get())) { PythonObject pargs( PyRefType::Owned, - Py_BuildValue("(Os)", session_dict.get(), command)); + Py_BuildValue("(Os)", session_dict.get(), command_str.c_str())); if (pargs.IsValid()) { PythonObject return_value( PyRefType::Owned, @@ -895,7 +897,6 @@ bool ScriptInterpreterPython::ExecuteOneLine( // The one-liner failed. Append the error message. if (result) { - std::string command_str = command.str(); result->AppendErrorWithFormat( "python failed attempting to evaluate '%s'\n", command_str.c_str()); } |