diff --git a/include/boost/python/arg_from_python.hpp b/include/boost/python/arg_from_python.hpp index 5793aac8..05611edb 100644 --- a/include/boost/python/arg_from_python.hpp +++ b/include/boost/python/arg_from_python.hpp @@ -62,35 +62,6 @@ struct arg_from_python PyObject* m_source; }; -#if PY_VERSION_HEX >= 0x03000000 -// specialization for const char *, experimenting -template <> -struct arg_from_python -{ - typedef const char* result_type; - - arg_from_python(PyObject* p) : m_source(p), intermediate(0) {} - bool convertible() const - { - return PyUnicode_Check(m_source); - } - const char* operator()() - { - const char* result; - intermediate = PyUnicode_AsUTF8String(m_source); - result = PyBytes_AsString(intermediate); - return result; - } - ~arg_from_python() - { - Py_DECREF(intermediate); - } - private: - PyObject* m_source; - PyObject* intermediate; -}; -#endif - // // implementations // diff --git a/src/converter/builtin_converters.cpp b/src/converter/builtin_converters.cpp index a39be7e7..db7421d9 100644 --- a/src/converter/builtin_converters.cpp +++ b/src/converter/builtin_converters.cpp @@ -370,24 +370,6 @@ namespace #endif }; -#if PY_VERSION_HEX >= 0x03000000 - // A SlotPolicy for extracting C char* string from Python 3 unicode string. - struct char_rvalue_from_python - { - static unaryfunc* get_slot(PyObject *obj) - { - printf("*********CALLED*************\n"); - return PyUnicode_Check(obj) ? &py_unicode_as_string_unaryfunc : 0; - } - - static const char* extract(PyObject* intermediate) - { - return PyBytes_AsString(intermediate); - } - static PyTypeObject const* get_pytype() { return &PyUnicode_Type;} - }; -#endif - #if defined(Py_USING_UNICODE) && !defined(BOOST_NO_STD_WSTRING) // encode_string_unaryfunc/py_encode_string -- manufacture a unaryfunc // "slot" which encodes a Python string using the default encoding @@ -541,10 +523,6 @@ void initialize_builtin_converters() registry::insert(convert_to_cstring,type_id(),&converter::wrap_pytype<&PyString_Type>::get_pytype); #else registry::insert(convert_to_cstring,type_id(),&converter::wrap_pytype<&PyUnicode_Type>::get_pytype); - //TODO(bhy) This doesn't work because for const char* a lvalue converter is - // always expected. (See select_extract in extract.hpp for detail) - // So we should figure out a workaround. - //slot_rvalue_from_python(); #endif // Register by-value converters to std::string, std::wstring