From 8e703e95692bd3ef130835fef11fd3515222a07f Mon Sep 17 00:00:00 2001 From: "Ralf W. Grosse-Kunstleve" Date: Thu, 2 Jun 2011 17:04:43 +0000 Subject: [PATCH] libs/python/src: patches by Bogdan Opanchuk (trac #5590) [SVN r72349] --- src/converter/builtin_converters.cpp | 2 ++ src/converter/from_python.cpp | 5 +---- src/object/class.cpp | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) 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)