Commit 38c36f85 authored by Victor Stinner's avatar Victor Stinner

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*.
........
parent 19495a7a
......@@ -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
......
......@@ -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;
......
......@@ -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;
}
......
......@@ -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;
}
}
......
......@@ -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);
......
......@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment