diff options
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python')
-rw-r--r-- | lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp index 90ccd10..24cf3430 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp @@ -1108,10 +1108,9 @@ public: py_error = Status::FromError(r.takeError()); } base_error = Base::Close(); - // Cloning since the wrapped exception may still reference the PyThread. if (py_error.Fail()) - return py_error.Clone(); - return base_error.Clone(); + return py_error; + return base_error; }; PyObject *GetPythonObject() const { @@ -1197,8 +1196,7 @@ public: return Flush(); auto r = m_py_obj.CallMethod("close"); if (!r) - // Cloning since the wrapped exception may still reference the PyThread. - return Status::FromError(r.takeError()).Clone(); + return Status::FromError(r.takeError()); return Status(); } @@ -1206,8 +1204,7 @@ public: GIL takeGIL; auto r = m_py_obj.CallMethod("flush"); if (!r) - // Cloning since the wrapped exception may still reference the PyThread. - return Status::FromError(r.takeError()).Clone(); + return Status::FromError(r.takeError()); return Status(); } @@ -1243,8 +1240,7 @@ public: PyObject *pybuffer_p = PyMemoryView_FromMemory( const_cast<char *>((const char *)buf), num_bytes, PyBUF_READ); if (!pybuffer_p) - // Cloning since the wrapped exception may still reference the PyThread. - return Status::FromError(llvm::make_error<PythonException>()).Clone(); + return Status::FromError(llvm::make_error<PythonException>()); auto pybuffer = Take<PythonObject>(pybuffer_p); num_bytes = 0; auto bytes_written = As<long long>(m_py_obj.CallMethod("write", pybuffer)); @@ -1264,8 +1260,7 @@ public: auto pybuffer_obj = m_py_obj.CallMethod("read", (unsigned long long)num_bytes); if (!pybuffer_obj) - // Cloning since the wrapped exception may still reference the PyThread. - return Status::FromError(pybuffer_obj.takeError()).Clone(); + return Status::FromError(pybuffer_obj.takeError()); num_bytes = 0; if (pybuffer_obj.get().IsNone()) { // EOF @@ -1274,8 +1269,7 @@ public: } auto pybuffer = PythonBuffer::Create(pybuffer_obj.get()); if (!pybuffer) - // Cloning since the wrapped exception may still reference the PyThread. - return Status::FromError(pybuffer.takeError()).Clone(); + return Status::FromError(pybuffer.takeError()); memcpy(buf, pybuffer.get().get().buf, pybuffer.get().get().len); num_bytes = pybuffer.get().get().len; return Status(); @@ -1306,8 +1300,7 @@ public: auto bytes_written = As<long long>(m_py_obj.CallMethod("write", pystring.get())); if (!bytes_written) - // Cloning since the wrapped exception may still reference the PyThread. - return Status::FromError(bytes_written.takeError()).Clone(); + return Status::FromError(bytes_written.takeError()); if (bytes_written.get() < 0) return Status::FromErrorString( ".write() method returned a negative number!"); @@ -1328,16 +1321,14 @@ public: auto pystring = As<PythonString>( m_py_obj.CallMethod("read", (unsigned long long)num_chars)); if (!pystring) - // Cloning since the wrapped exception may still reference the PyThread. - return Status::FromError(pystring.takeError()).Clone(); + return Status::FromError(pystring.takeError()); if (pystring.get().IsNone()) { // EOF return Status(); } auto stringref = pystring.get().AsUTF8(); if (!stringref) - // Cloning since the wrapped exception may still reference the PyThread. - return Status::FromError(stringref.takeError()).Clone(); + return Status::FromError(stringref.takeError()); num_bytes = stringref.get().size(); memcpy(buf, stringref.get().begin(), num_bytes); return Status(); |