summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-03-21 21:05:53 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-03-21 21:05:53 (GMT)
commit38c36f857600c72a094c65010d51342a1fd73658 (patch)
treee85caabd68ef137e309f9365019a9eb40eca88ff
parent19495a7adc505581734058a74c1a3476267bab40 (diff)
downloadcpython-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*. ........
-rw-r--r--Modules/_hashopenssl.c5
-rw-r--r--Modules/zipimport.c9
-rw-r--r--Objects/funcobject.c4
-rw-r--r--Objects/typeobject.c13
-rw-r--r--Python/ceval.c4
-rw-r--r--Python/import.c4
6 files changed, 19 insertions, 20 deletions
diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c
index 0850d7b..ee149e1 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 770f18f..fed3e99 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 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;
}
}
diff --git a/Python/ceval.c b/Python/ceval.c
index f793db3..c807ecc 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 1129a7f..5da4c51 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;