From: Victor Stinner Date: Sun, 21 Mar 2010 21:05:53 +0000 (+0000) Subject: Merged revisions 78875 via svnmerge from X-Git-Tag: v3.1.3rc1~1049 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=38c36f857600c72a094c65010d51342a1fd73658;p=python 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*. ........ --- diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c index 0850d7b8a4..ee149e117b 100644 --- a/Modules/_hashopenssl.c +++ b/Modules/_hashopenssl.c @@ -288,10 +288,7 @@ static PyGetSetDef EVP_getseters[] = { static PyObject * EVP_repr(EVPobject *self) { - char buf[100]; - PyOS_snprintf(buf, sizeof(buf), "<%s HASH object @ %p>", - _PyUnicode_AsString(self->name), self); - return PyUnicode_FromString(buf); + return PyUnicode_FromFormat("<%U HASH object @ %p>", self->name, self); } #if HASH_OBJ_CONSTRUCTOR diff --git a/Modules/zipimport.c b/Modules/zipimport.c index 770f18f69d..fed3e99339 100644 --- a/Modules/zipimport.c +++ b/Modules/zipimport.c @@ -321,15 +321,12 @@ zipimporter_load_module(PyObject *obj, PyObject *args) /* add __path__ to the module *before* the code gets executed */ PyObject *pkgpath, *fullpath; - char *prefix = _PyUnicode_AsString(self->prefix); char *subname = get_subname(fullname); int err; - fullpath = PyUnicode_FromFormat("%s%c%s%s", - _PyUnicode_AsString(self->archive), - SEP, - prefix ? prefix : "", - subname); + fullpath = PyUnicode_FromFormat("%U%c%U%s", + self->archive, SEP, + self->prefix, subname); if (fullpath == NULL) goto error; diff --git a/Objects/funcobject.c b/Objects/funcobject.c index 16851a942d..35fc32d659 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 60483e718c..07a8cd983c 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; } } diff --git a/Python/ceval.c b/Python/ceval.c index f793db3ea5..c807ecca23 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -3883,10 +3883,10 @@ update_keyword_args(PyObject *orig_kwdict, int nk, PyObject ***pp_stack, if (PyDict_GetItem(kwdict, key) != NULL) { PyErr_Format(PyExc_TypeError, "%.200s%s got multiple values " - "for keyword argument '%.200s'", + "for keyword argument '%U'", PyEval_GetFuncName(func), PyEval_GetFuncDesc(func), - _PyUnicode_AsString(key)); + key); Py_DECREF(key); Py_DECREF(value); Py_DECREF(kwdict); diff --git a/Python/import.c b/Python/import.c index 1129a7f9f8..5da4c513fe 100644 --- a/Python/import.c +++ b/Python/import.c @@ -2694,8 +2694,8 @@ PyImport_ReloadModule(PyObject *m) parent = PyDict_GetItem(modules, parentname); if (parent == NULL) { PyErr_Format(PyExc_ImportError, - "reload(): parent %.200s not in sys.modules", - _PyUnicode_AsString(parentname)); + "reload(): parent %U not in sys.modules", + parentname); Py_DECREF(parentname); imp_modules_reloading_clear(); return NULL;