[Lldb-commits] [PATCH] D49309: No longer pass a StringRef to the Python API

Raphael Isemann via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Jul 13 10:54:02 PDT 2018

teemperor created this revision.
teemperor added a reviewer: stella.stamenova.

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.



Index: source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
--- source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+++ source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
@@ -753,6 +753,8 @@
 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 @@
           if (PyCallable_Check(m_run_one_line_function.get())) {
             PythonObject pargs(
-                Py_BuildValue("(Os)", session_dict.get(), command));
+                Py_BuildValue("(Os)", session_dict.get(), command_str.c_str()));
             if (pargs.IsValid()) {
               PythonObject return_value(
@@ -895,7 +897,6 @@
     // The one-liner failed.  Append the error message.
     if (result) {
-      std::string command_str = command.str();
           "python failed attempting to evaluate '%s'\n", command_str.c_str());

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D49309.155434.patch
Type: text/x-patch
Size: 1241 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20180713/5a15ed4c/attachment.bin>

More information about the lldb-commits mailing list