summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/generic.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/python/generic.h b/python/generic.h
index 2a87b39c..182b1b53 100644
--- a/python/generic.h
+++ b/python/generic.h
@@ -83,15 +83,25 @@ static inline const char *PyUnicode_AsString(PyObject *op) {
}
// Convert any type of string based object to a const char.
+#if PY_MAJOR_VERSION < 3
static inline const char *PyObject_AsString(PyObject *object) {
if (PyBytes_Check(object))
return PyBytes_AsString(object);
else if (PyUnicode_Check(object))
return PyUnicode_AsString(object);
else
- PyErr_SetObject(PyExc_TypeError, object);
+ PyErr_SetString(PyExc_TypeError, "Argument must be str.");
return 0;
}
+#else
+static inline const char *PyObject_AsString(PyObject *object) {
+ if (PyUnicode_Check(object) == 0) {
+ PyErr_SetString(PyExc_TypeError, "Argument must be str.");
+ return 0;
+ }
+ return PyUnicode_AsString(object);
+}
+#endif
template <class T> struct CppPyObject : public PyObject
{