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* |