mirror of https://github.com/python/cpython
Intern __name__.
This commit is contained in:
parent
83969eeeeb
commit
321c9ab74c
|
@ -11,6 +11,7 @@ PyFunction_New(PyObject *code, PyObject *globals)
|
||||||
{
|
{
|
||||||
PyFunctionObject *op = PyObject_GC_New(PyFunctionObject,
|
PyFunctionObject *op = PyObject_GC_New(PyFunctionObject,
|
||||||
&PyFunction_Type);
|
&PyFunction_Type);
|
||||||
|
static PyObject *__name__ = 0;
|
||||||
if (op != NULL) {
|
if (op != NULL) {
|
||||||
PyObject *doc;
|
PyObject *doc;
|
||||||
PyObject *consts;
|
PyObject *consts;
|
||||||
|
@ -40,7 +41,14 @@ PyFunction_New(PyObject *code, PyObject *globals)
|
||||||
/* __module__: If module name is in globals, use it.
|
/* __module__: If module name is in globals, use it.
|
||||||
Otherwise, use None.
|
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) {
|
if (module) {
|
||||||
Py_INCREF(module);
|
Py_INCREF(module);
|
||||||
op->func_module = module;
|
op->func_module = module;
|
||||||
|
|
Loading…
Reference in New Issue