{
PyFunctionObject *op = PyObject_GC_New(PyFunctionObject,
&PyFunction_Type);
+ static PyObject *__name__ = 0;
if (op != NULL) {
PyObject *doc;
PyObject *consts;
/* __module__: If module name is in globals, use it.
Otherwise, use None.
*/
- module = PyDict_GetItemString(globals, "__name__");
+ if (!__name__) {
+ __name__ = PyString_InternFromString("__name__");
+ if (!__name__) {
+ Py_DECREF(op);
+ return NULL;
+ }
+ }
+ module = PyDict_GetItem(globals, __name__);
if (module) {
Py_INCREF(module);
op->func_module = module;