summaryrefslogtreecommitdiffstats
path: root/lldb
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-01-11 22:16:17 +0000
committerZachary Turner <zturner@google.com>2016-01-11 22:16:17 +0000
commit7a76845c489f00492c9314180c48782f8ca179cc (patch)
tree7195eb7ab9779c99e784f27adaf9a889179b1727 /lldb
parent5a72c02be9a7a5ac5671f079997ec58a71b661ba (diff)
downloadbcm5719-llvm-7a76845c489f00492c9314180c48782f8ca179cc.tar.gz
bcm5719-llvm-7a76845c489f00492c9314180c48782f8ca179cc.zip
Fix Python 3 issues related to OS plugins.
* lldb::tid_t was being converted incorrectly, so this is updated to use PythonInteger instead of manual Python Native API calls. * OSPlugin_RegisterContextData was assuming that the result of get_register_data was a string, when in fact it is a bytes. So this method is updated to use PythonBytes to do the work. llvm-svn: 257398
Diffstat (limited to 'lldb')
-rw-r--r--lldb/scripts/Python/python-typemaps.swig20
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp6
2 files changed, 14 insertions, 12 deletions
diff --git a/lldb/scripts/Python/python-typemaps.swig b/lldb/scripts/Python/python-typemaps.swig
index ec9302a15cd..9c4e5cecb36 100644
--- a/lldb/scripts/Python/python-typemaps.swig
+++ b/lldb/scripts/Python/python-typemaps.swig
@@ -26,15 +26,17 @@
}
%typemap(in) lldb::tid_t {
- if (PyInt_Check($input))
- $1 = PyInt_AsLong($input);
- else if (PyLong_Check($input))
- $1 = PyLong_AsLongLong($input);
- else
- {
- PyErr_SetString(PyExc_ValueError, "Expecting an integer");
- return NULL;
- }
+ using namespace lldb_private;
+ if (PythonInteger::Check($input))
+ {
+ PythonInteger py_int(PyRefType::Borrowed, $input);
+ $1 = static_cast<lldb::tid_t>(py_int.GetInteger());
+ }
+ else
+ {
+ PyErr_SetString(PyExc_ValueError, "Expecting an integer");
+ return nullptr;
+ }
}
%typemap(typecheck) char ** {
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
index b1dd34b46f6..19ad86db240 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
@@ -1692,10 +1692,10 @@ ScriptInterpreterPython::OSPlugin_RegisterContextData(StructuredData::ObjectSP o
PyErr_Clear();
}
- assert(PythonString::Check(py_return.get()) && "get_register_data returned unknown object type!");
+ assert(PythonBytes::Check(py_return.get()) && "get_register_data returned unknown object type!");
- PythonString result_string(PyRefType::Borrowed, py_return.get());
- return result_string.CreateStructuredString();
+ PythonBytes result(PyRefType::Borrowed, py_return.get());
+ return result.CreateStructuredString();
}
StructuredData::DictionarySP
OpenPOWER on IntegriCloud