summaryrefslogtreecommitdiff
path: root/Modules/_lsprof.c
diff options
context:
space:
mode:
authorAlexander Belopolsky <alexander.belopolsky@gmail.com>2010-12-10 18:11:24 +0000
committerAlexander Belopolsky <alexander.belopolsky@gmail.com>2010-12-10 18:11:24 +0000
commit69b826e75b31f3b0ed4377f2c39c8202b2e89d40 (patch)
tree94dea210810b185261761322eb27be3624177b03 /Modules/_lsprof.c
parentba8910c72ebdc7c6520cbbab51f950809d2beceb (diff)
downloadcpython-69b826e75b31f3b0ed4377f2c39c8202b2e89d40.tar.gz
Updated UCD version and unicode.org links to Unicode 6.0.0
Diffstat (limited to 'Modules/_lsprof.c')
-rw-r--r--Modules/_lsprof.c34
1 files changed, 12 insertions, 22 deletions
diff --git a/Modules/_lsprof.c b/Modules/_lsprof.c
index cc412bfc23..199c42b68f 100644
--- a/Modules/_lsprof.c
+++ b/Modules/_lsprof.c
@@ -176,31 +176,21 @@ normalizeUserObj(PyObject *obj)
if (fn->m_self == NULL) {
/* built-in function: look up the module name */
PyObject *mod = fn->m_module;
- const char *modname;
- if (mod && PyUnicode_Check(mod)) {
- /* XXX: The following will truncate module names with embedded
- * null-characters. It is unlikely that this can happen in
- * practice and the concequences are not serious enough to
- * introduce extra checks here.
- */
- modname = _PyUnicode_AsString(mod);
- if (modname == NULL) {
- modname = "<encoding error>";
- PyErr_Clear();
+ PyObject *modname;
+ if (mod != NULL) {
+ if (PyUnicode_Check(mod)) {
+ modname = mod;
+ Py_INCREF(modname);
}
- }
- else if (mod && PyModule_Check(mod)) {
- modname = PyModule_GetName(mod);
- if (modname == NULL) {
- PyErr_Clear();
- modname = "builtins";
+ else if (PyModule_Check(mod)) {
+ modname = PyModule_GetNameObject(mod);
+ if (modname == NULL)
+ PyErr_Clear();
}
}
- else {
- modname = "builtins";
- }
- if (strcmp(modname, "builtins") != 0)
- return PyUnicode_FromFormat("<%s.%s>",
+ if (modname != NULL &&
+ PyUnicode_CompareWithASCIIString(modname, "builtins") != 0)
+ return PyUnicode_FromFormat("<%U.%s>",
modname,
fn->m_ml->ml_name);
else