Expect unicode in class_name.
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index ab86f54..4fc51a6 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -1010,7 +1010,7 @@
}
if (name == NULL)
return NULL;
- if (!PyString_Check(name)) {
+ if (!PyUnicode_Check(name)) {
Py_DECREF(name);
return NULL;
}
@@ -1032,7 +1032,7 @@
o = class_name(o);
PyErr_Format(PyExc_TypeError,
"duplicate base class %s",
- o ? PyString_AS_STRING(o) : "?");
+ o ? PyUnicode_AsString(o) : "?");
Py_XDECREF(o);
return -1;
}
@@ -1078,7 +1078,7 @@
while (PyDict_Next(set, &i, &k, &v) && (size_t)off < sizeof(buf)) {
PyObject *name = class_name(k);
off += PyOS_snprintf(buf + off, sizeof(buf) - off, " %s",
- name ? PyString_AS_STRING(name) : "?");
+ name ? PyUnicode_AsString(name) : "?");
Py_XDECREF(name);
if (--n && (size_t)(off+1) < sizeof(buf)) {
buf[off++] = ',';