From 056bb284ccf8dd6793ec3a54ffa36c4fb2b9ad11 Mon Sep 17 00:00:00 2001 From: alexv-smirnov Date: Wed, 15 Mar 2023 19:59:12 +0300 Subject: add library/cpp/actors, ymake build to ydb oss export --- contrib/restricted/boost/python/src/wrapper.cpp | 66 +++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 contrib/restricted/boost/python/src/wrapper.cpp (limited to 'contrib/restricted/boost/python/src/wrapper.cpp') diff --git a/contrib/restricted/boost/python/src/wrapper.cpp b/contrib/restricted/boost/python/src/wrapper.cpp new file mode 100644 index 00000000000..8b1b8847695 --- /dev/null +++ b/contrib/restricted/boost/python/src/wrapper.cpp @@ -0,0 +1,66 @@ +// Copyright David Abrahams 2004. 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) + +#include + +namespace boost { namespace python { + +namespace detail +{ + override wrapper_base::get_override( + char const* name + , PyTypeObject* class_object + ) const + { + if (this->m_self) + { + if (handle<> m = handle<>( + python::allow_null( + ::PyObject_GetAttrString( + this->m_self, const_cast(name)))) + ) + { + PyObject* borrowed_f = 0; + + if ( + PyMethod_Check(m.get()) + && PyMethod_GET_SELF(m.get()) == this->m_self + && class_object->tp_dict != 0 + ) + { + borrowed_f = ::PyDict_GetItemString( + class_object->tp_dict, const_cast(name)); + + + } + if (borrowed_f != PyMethod_GET_FUNCTION(m.get())) + return override(m); + } + } + return override(handle<>(detail::none())); + } +} + +#if 0 +namespace converter +{ + PyObject* BOOST_PYTHON_DECL do_polymorphic_ref_to_python( + python::detail::wrapper_base const volatile* x, type_info src + ) + { + if (x == 0) + { + ::PyErr_Format( + PyExc_TypeError + , "Attempting to returning pointer or reference to instance of %s\n" + "for which no corresponding Python object exists. Wrap this function" + "with a return return value policy" + ) + } + } + +} +#endif + +}} // namespace boost::python::detail -- cgit v1.3