diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2010-03-21 21:05:53 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2010-03-21 21:05:53 (GMT) |
commit | 38c36f857600c72a094c65010d51342a1fd73658 (patch) | |
tree | e85caabd68ef137e309f9365019a9eb40eca88ff /Objects | |
parent | 19495a7adc505581734058a74c1a3476267bab40 (diff) | |
download | cpython-38c36f857600c72a094c65010d51342a1fd73658.zip cpython-38c36f857600c72a094c65010d51342a1fd73658.tar.gz cpython-38c36f857600c72a094c65010d51342a1fd73658.tar.bz2 |
Merged revisions 78875 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r78875 | victor.stinner | 2010-03-12 18:00:41 +0100 (ven., 12 mars 2010) | 5 lines
Issue #6697: use %U format instead of _PyUnicode_AsString(), because
_PyUnicode_AsString() was not checked for error (NULL).
The unicode string is no more truncated to 200 or 400 *bytes*.
........
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/funcobject.c | 4 | ||||
-rw-r--r-- | Objects/typeobject.c | 13 |
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 60483e7..07a8cd9 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; } } |