From a56f66e721476e199d917fb1d23d58a795dabddd Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Sun, 10 Mar 2002 06:37:58 +0000 Subject: [PATCH] Factor to_python guts [SVN r13162] --- src/converter/builtin_converters.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/converter/builtin_converters.cpp b/src/converter/builtin_converters.cpp index 87d0d7b4..0ded9c78 100644 --- a/src/converter/builtin_converters.cpp +++ b/src/converter/builtin_converters.cpp @@ -232,6 +232,30 @@ namespace }; } +BOOST_PYTHON_DECL PyObject* do_call_to_python(char x) +{ + return PyString_FromStringAndSize(&x, 1); +} + +BOOST_PYTHON_DECL PyObject* do_call_to_python(char const* x) +{ + return x ? PyString_FromString(x) : boost::python::detail::none(); +} + +BOOST_PYTHON_DECL PyObject* do_call_to_python(PyObject* x) +{ + return x ? x : boost::python::detail::none(); +} + +BOOST_PYTHON_DECL PyObject* do_callback_to_python(PyObject* x) +{ + if (x == 0) + return boost::python::detail::none(); + + Py_INCREF(x); + return x; +} + #define REGISTER_INT_CONVERTERS(U) slot_rvalue_from_python() #define REGISTER_INT_CONVERTERS2(U) REGISTER_INT_CONVERTERS(signed U); REGISTER_INT_CONVERTERS(unsigned U)