summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/scripts/Python/python-typemaps.swig5
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp6
2 files changed, 11 insertions, 0 deletions
diff --git a/lldb/scripts/Python/python-typemaps.swig b/lldb/scripts/Python/python-typemaps.swig
index ad8569a7cd9..9921c485162 100644
--- a/lldb/scripts/Python/python-typemaps.swig
+++ b/lldb/scripts/Python/python-typemaps.swig
@@ -552,6 +552,11 @@
File file($1, false);
PythonFile py_file(file, mode);
$result = py_file.release();
+ if (!$result)
+ {
+ $result = Py_None;
+ Py_INCREF(Py_None);
+ }
}
%typemap(in) (const char* string, int len) {
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
index e3f84f53df0..3107677ee94 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
@@ -1035,6 +1035,12 @@ PythonFile::Reset(PyRefType type, PyObject *py_obj)
void
PythonFile::Reset(File &file, const char *mode)
{
+ if (!file.IsValid())
+ {
+ Reset();
+ return;
+ }
+
char *cmode = const_cast<char *>(mode);
#if PY_MAJOR_VERSION >= 3
Reset(PyRefType::Owned,
OpenPOWER on IntegriCloud