Mercurial > cpython-lru_cache-weakref
diff Objects/moduleobject.c @ 61348:5260104db99d
module_repr(): use %U to format the file name
Avoid useless encode/decode of the filename
| author | Victor Stinner <victor.stinner@haypocalc.com> |
|---|---|
| date | Fri, 07 May 2010 00:50:12 +0000 |
| parents | a0951f11be3d |
| children | cab14be0ada1 |
line wrap: on
line diff
--- a/Objects/moduleobject.c Fri May 07 00:41:18 2010 +0000 +++ b/Objects/moduleobject.c Fri May 07 00:50:12 2010 +0000 @@ -191,8 +191,8 @@ return _PyUnicode_AsString(nameobj); } -const char * -PyModule_GetFilename(PyObject *m) +static PyObject* +module_getfilename(PyObject *m) { PyObject *d; PyObject *fileobj; @@ -208,6 +208,16 @@ PyErr_SetString(PyExc_SystemError, "module filename missing"); return NULL; } + return fileobj; +} + +const char * +PyModule_GetFilename(PyObject *m) +{ + PyObject *fileobj; + fileobj = module_getfilename(m); + if (fileobj == NULL) + return NULL; return _PyUnicode_AsString(fileobj); } @@ -327,19 +337,19 @@ module_repr(PyModuleObject *m) { const char *name; - const char *filename; + PyObject *filename; name = PyModule_GetName((PyObject *)m); if (name == NULL) { PyErr_Clear(); name = "?"; } - filename = PyModule_GetFilename((PyObject *)m); + filename = module_getfilename((PyObject *)m); if (filename == NULL) { PyErr_Clear(); return PyUnicode_FromFormat("<module '%s' (built-in)>", name); } - return PyUnicode_FromFormat("<module '%s' from '%s'>", name, filename); + return PyUnicode_FromFormat("<module '%s' from '%U'>", name, filename); } static int
