]> granicus.if.org Git - python/commitdiff
Reverted accidental commit (from r87159)
authorAlexander Belopolsky <alexander.belopolsky@gmail.com>
Fri, 10 Dec 2010 18:14:16 +0000 (18:14 +0000)
committerAlexander Belopolsky <alexander.belopolsky@gmail.com>
Fri, 10 Dec 2010 18:14:16 +0000 (18:14 +0000)
Modules/_lsprof.c
Objects/moduleobject.c

index 199c42b68f36afeb792162dd7575fcf3b0a282c2..cc412bfc23283b3340ce9c5ad9ee7060f2177b1c 100644 (file)
@@ -176,21 +176,31 @@ normalizeUserObj(PyObject *obj)
     if (fn->m_self == NULL) {
         /* built-in function: look up the module name */
         PyObject *mod = fn->m_module;
-        PyObject *modname;
-        if (mod != NULL) {
-            if (PyUnicode_Check(mod)) {
-                modname = mod;
-                Py_INCREF(modname);
+        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();
             }
-            else if (PyModule_Check(mod)) {
-                modname = PyModule_GetNameObject(mod);
-                if (modname == NULL)
-                    PyErr_Clear();
+        }
+        else if (mod && PyModule_Check(mod)) {
+            modname = PyModule_GetName(mod);
+            if (modname == NULL) {
+                PyErr_Clear();
+                modname = "builtins";
             }
         }
-        if (modname != NULL && 
-            PyUnicode_CompareWithASCIIString(modname, "builtins") != 0)
-            return PyUnicode_FromFormat("<%U.%s>",
+        else {
+            modname = "builtins";
+        }
+        if (strcmp(modname, "builtins") != 0)
+            return PyUnicode_FromFormat("<%s.%s>",
                                         modname,
                                         fn->m_ml->ml_name);
         else
index 8b22b7dc95a26f7f1ad3f30fbdae632a2956fe9b..2c095a096870aa2022fab6d247d85914c2250e58 100644 (file)
@@ -168,8 +168,8 @@ PyModule_GetDict(PyObject *m)
     return d;
 }
 
-PyObject *
-PyModule_GetNameObject(PyObject *m)
+const char *
+PyModule_GetName(PyObject *m)
 {
     PyObject *d;
     PyObject *nameobj;
@@ -185,21 +185,7 @@ PyModule_GetNameObject(PyObject *m)
         PyErr_SetString(PyExc_SystemError, "nameless module");
         return NULL;
     }
-    Py_INCREF(nameobj);
-    return nameobj;
-}
-
-const char *
-PyModule_GetName(PyObject *m)
-{
-    PyObject *nameobj;
-    char *utf8;
-    nameobj = PyModule_GetNameObject(m);
-    if (nameobj == NULL)
-        return NULL;
-    utf8 = _PyUnicode_AsString(nameobj);
-    Py_DECREF(nameobj);
-    return utf8;
+    return _PyUnicode_AsString(nameobj);
 }
 
 PyObject*