]> granicus.if.org Git - python/commitdiff
code_repr(): use %U to format the filename
authorVictor Stinner <victor.stinner@haypocalc.com>
Fri, 7 May 2010 00:41:18 +0000 (00:41 +0000)
committerVictor Stinner <victor.stinner@haypocalc.com>
Fri, 7 May 2010 00:41:18 +0000 (00:41 +0000)
Avoid useless unicode decoding/recoding of the filename.

Objects/codeobject.c

index 3e71e4cde3d7e4aa12c684391bb503bb019a8edb..ad2068bb2a87868b5fd079694eb8f339eb0a5ac7 100644 (file)
@@ -340,16 +340,20 @@ code_dealloc(PyCodeObject *co)
 static PyObject *
 code_repr(PyCodeObject *co)
 {
-       int lineno = -1;
-       char *filename = "???";
-
+       int lineno;
        if (co->co_firstlineno != 0)
                lineno = co->co_firstlineno;
-       if (co->co_filename && PyUnicode_Check(co->co_filename))
-               filename = _PyUnicode_AsString(co->co_filename);
-       return PyUnicode_FromFormat(
-                       "<code object %.100U at %p, file \"%.300s\", line %d>",
-                       co->co_name, co, filename, lineno);
+       else
+               lineno = -1;
+       if (co->co_filename && PyUnicode_Check(co->co_filename)) {
+               return PyUnicode_FromFormat(
+                       "<code object %.100U at %p, file \"%.300U\", line %d>",
+                       co->co_name, co, co->co_filename, lineno);
+       } else {
+               return PyUnicode_FromFormat(
+                       "<code object %.100U at %p, file ???, line %d>",
+                       co->co_name, co, lineno);
+       }
 }
 
 static PyObject *