]> granicus.if.org Git - python/commitdiff
Merged revisions 78875 via svnmerge from
authorVictor Stinner <victor.stinner@haypocalc.com>
Sun, 21 Mar 2010 21:05:53 +0000 (21:05 +0000)
committerVictor Stinner <victor.stinner@haypocalc.com>
Sun, 21 Mar 2010 21:05:53 +0000 (21:05 +0000)
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*.
........

Modules/_hashopenssl.c
Modules/zipimport.c
Objects/funcobject.c
Objects/typeobject.c
Python/ceval.c
Python/import.c

index 0850d7b8a49b8499010494e117c206ce3f245fb7..ee149e117b1470c2e3c504051ac06592ad8e7580 100644 (file)
@@ -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
index 770f18f69d9499d9682953bb968d4784e1e0eba7..fed3e99339e3477c1e6621d879fab81c496ff6d7 100644 (file)
@@ -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;
 
index 16851a942d5d4c23785d1febbe387b65a17ccff8..35fc32d659c39fcf204bc7282292bdaf0882d662 100644 (file)
@@ -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;
        }
index 60483e718cdb4ced9f47d19d5b4a4c077ae0f3a5..07a8cd983c1b964f95f1d723c21440332bbf4d68 100644 (file)
@@ -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;
                        }
                }
index f793db3ea5ee74779ec8ff09a16e4d722b97c61e..c807ecca2393a754789d785fd68a6421071e5a04 100644 (file)
@@ -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);
index 1129a7f9f8dc3f6098d6bbc09aa7a1eab910874b..5da4c513fe9711fb37c9c3993098586f765ccc94 100644 (file)
@@ -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;