Added a typemap and wrappers for SBInputReader callbacks
Now it's possible to use SBInputReader callbacks in Python.
We leak the callback object, unfortunately. A __del__ method can be added
to SBInputReader, but we have no way to check the callback function that
is on the reader. So we can't call Py_DECREF on it when we have our
PythonCallback function. One way to do it is to assume that reified
SBInputReaders always have a Python callback (and always call Py_DECREF).
Another one is to add methods or properties to SBInputReader (or make the
m_callback_function property public).
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162356 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/scripts/Python/python-extensions.swig b/scripts/Python/python-extensions.swig
index cd8f1cf..24f06a1 100644
--- a/scripts/Python/python-extensions.swig
+++ b/scripts/Python/python-extensions.swig
@@ -25,7 +25,6 @@
return PyString_FromStringAndSize (desc, desc_len);
else
return PyString_FromString("");
-
}
}
%extend lldb::SBBreakpoint {
@@ -485,6 +484,16 @@
}
}
+// %extend lldb::SBInputReader {
+// // FIXME: m_callback_function is private and we have no other
+// // way to access it.
+// PyObject *lldb::SBInputReader::__del__ (){
+// // Only call Py_XDECREF if we have a Python object (or NULL)
+// if (LLDBSwigPythonCallSBInputReaderCallback == $self->m_callback_function)
+// Py_XDECREF($self->m_callback_baton);
+// }
+// }
+
%pythoncode %{
class declaration(object):