1 // Copyright David Abrahams 2002. 2 // Distributed under the Boost Software License, Version 1.0. (See 3 // accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 #ifndef DECREF_GUARD_DWA20021220_HPP 6 # define DECREF_GUARD_DWA20021220_HPP 7 8 namespace boost { namespace python { namespace detail { 9 10 struct decref_guard 11 { decref_guardboost::python::detail::decref_guard12 decref_guard(PyObject* o) : obj(o) {} ~decref_guardboost::python::detail::decref_guard13 ~decref_guard() { Py_XDECREF(obj); } cancelboost::python::detail::decref_guard14 void cancel() { obj = 0; } 15 private: 16 PyObject* obj; 17 }; 18 19 }}} // namespace boost::python::detail 20 21 #endif // DECREF_GUARD_DWA20021220_HPP 22