]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/python/src/wrapper.cpp
1 // Copyright David Abrahams 2004. Distributed under the Boost
2 // Software License, Version 1.0. (See accompanying
3 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 #include <boost/python/wrapper.hpp>
7 namespace boost
{ namespace python
{
11 override
wrapper_base::get_override(
13 , PyTypeObject
* class_object
18 if (handle
<> m
= handle
<>(
20 ::PyObject_GetAttrString(
21 this->m_self
, const_cast<char*>(name
))))
24 PyObject
* borrowed_f
= 0;
27 PyMethod_Check(m
.get())
28 && ((PyMethodObject
*)m
.get())->im_self
== this->m_self
29 && class_object
->tp_dict
!= 0
32 borrowed_f
= ::PyDict_GetItemString(
33 class_object
->tp_dict
, const_cast<char*>(name
));
37 if (borrowed_f
!= ((PyMethodObject
*)m
.get())->im_func
)
41 return override(handle
<>(detail::none()));
48 PyObject
* BOOST_PYTHON_DECL
do_polymorphic_ref_to_python(
49 python::detail::wrapper_base
const volatile* x
, type_info src
56 , "Attempting to returning pointer or reference to instance of %s\n"
57 "for which no corresponding Python object exists. Wrap this function"
58 "with a return return value policy"
66 }} // namespace boost::python::detail