diff options
Diffstat (limited to 'Objects/moduleobject.c')
| -rw-r--r-- | Objects/moduleobject.c | 20 | 
1 files changed, 17 insertions, 3 deletions
diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c index 2c095a0..8b22b7d 100644 --- a/Objects/moduleobject.c +++ b/Objects/moduleobject.c @@ -168,8 +168,8 @@ PyModule_GetDict(PyObject *m)      return d;  } -const char * -PyModule_GetName(PyObject *m) +PyObject * +PyModule_GetNameObject(PyObject *m)  {      PyObject *d;      PyObject *nameobj; @@ -185,7 +185,21 @@ PyModule_GetName(PyObject *m)          PyErr_SetString(PyExc_SystemError, "nameless module");          return NULL;      } -    return _PyUnicode_AsString(nameobj); +    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;  }  PyObject*  | 
