diff --git a/include/boost/python/override.hpp b/include/boost/python/override.hpp old mode 100755 new mode 100644 index d5a95b83..39714257 --- a/include/boost/python/override.hpp +++ b/include/boost/python/override.hpp @@ -77,7 +77,7 @@ namespace detail template T unchecked(type* = 0) { - return extract(m_obj)(); + return extract(m_obj.get())(); } private: mutable handle<> m_obj; diff --git a/src/converter/builtin_converters.cpp b/src/converter/builtin_converters.cpp index 19f0126c..c7c95ea8 100644 --- a/src/converter/builtin_converters.cpp +++ b/src/converter/builtin_converters.cpp @@ -366,7 +366,9 @@ namespace static PyTypeObject const* get_pytype() { return &PyFloat_Type;} }; +#if PY_VERSION_HEX >= 0x03000000 unaryfunc py_unicode_as_string_unaryfunc = PyUnicode_AsUTF8String; +#endif // A SlotPolicy for extracting C++ strings from Python objects. struct string_rvalue_from_python diff --git a/src/converter/from_python.cpp b/src/converter/from_python.cpp index 0af47609..9678be1c 100644 --- a/src/converter/from_python.cpp +++ b/src/converter/from_python.cpp @@ -44,11 +44,8 @@ BOOST_PYTHON_DECL rvalue_from_python_stage1_data rvalue_from_python_stage1( // First check to see if it's embedded in an extension class // instance, as a special case. data.convertible = objects::find_instance_impl(source, converters.target_type, converters.is_shared_ptr); - if (data.convertible) - { data.construct = 0; - } - else + if (!data.convertible) { for (rvalue_from_python_chain const* chain = converters.rvalue_chain; chain != 0; diff --git a/src/object/class.cpp b/src/object/class.cpp index 3f818d82..aeef688e 100644 --- a/src/object/class.cpp +++ b/src/object/class.cpp @@ -76,11 +76,11 @@ extern "C" static int property_init(PyObject *self, PyObject *args, PyObject *kwds) { PyObject *get = NULL, *set = NULL, *del = NULL, *doc = NULL; - static char *kwlist[] = {"fget", "fset", "fdel", "doc", 0}; + static const char *kwlist[] = {"fget", "fset", "fdel", "doc", 0}; propertyobject *prop = (propertyobject *)self; if (!PyArg_ParseTupleAndKeywords(args, kwds, "|OOOO:property", - kwlist, &get, &set, &del, &doc)) + const_cast(kwlist), &get, &set, &del, &doc)) return -1; if (get == Py_None)