diff options
Diffstat (limited to 'boost/python/refcount.hpp')
-rw-r--r-- | boost/python/refcount.hpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/boost/python/refcount.hpp b/boost/python/refcount.hpp new file mode 100644 index 0000000000..5ba5433c22 --- /dev/null +++ b/boost/python/refcount.hpp @@ -0,0 +1,41 @@ +// Copyright David Abrahams 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef REFCOUNT_DWA2002615_HPP +# define REFCOUNT_DWA2002615_HPP + +# include <boost/python/detail/prefix.hpp> +# include <boost/python/cast.hpp> + +namespace boost { namespace python { + +template <class T> +inline T* incref(T* p) +{ + Py_INCREF(python::upcast<PyObject>(p)); + return p; +} + +template <class T> +inline T* xincref(T* p) +{ + Py_XINCREF(python::upcast<PyObject>(p)); + return p; +} + +template <class T> +inline void decref(T* p) +{ + Py_DECREF(python::upcast<PyObject>(p)); +} + +template <class T> +inline void xdecref(T* p) +{ + Py_XDECREF(python::upcast<PyObject>(p)); +} + +}} // namespace boost::python + +#endif // REFCOUNT_DWA2002615_HPP |