summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
Diffstat (limited to 'Objects')
-rw-r--r--Objects/funcobject.c4
-rw-r--r--Objects/typeobject.c13
2 files changed, 11 insertions, 6 deletions
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index 16851a9..35fc32d 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -295,9 +295,9 @@ func_set_code(PyFunctionObject *op, PyObject *value)
PyTuple_GET_SIZE(op->func_closure));
if (nclosure != nfree) {
PyErr_Format(PyExc_ValueError,
- "%s() requires a code object with %zd free vars,"
+ "%U() requires a code object with %zd free vars,"
" not %zd",
- _PyUnicode_AsString(op->func_name),
+ op->func_name,
nclosure, nfree);
return -1;
}
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index be4b6f8..7fd4cc8 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -1295,10 +1295,15 @@ check_duplicates(PyObject *list)
for (j = i + 1; j < n; j++) {
if (PyList_GET_ITEM(list, j) == o) {
o = class_name(o);
- PyErr_Format(PyExc_TypeError,
- "duplicate base class %.400s",
- o ? _PyUnicode_AsString(o) : "?");
- Py_XDECREF(o);
+ if (o != NULL) {
+ PyErr_Format(PyExc_TypeError,
+ "duplicate base class %U",
+ o);
+ Py_DECREF(o);
+ } else {
+ PyErr_SetString(PyExc_TypeError,
+ "duplicate base class");
+ }
return -1;
}
}