diff --git a/Modules/_weakref.c b/Modules/_weakref.c index cd7c4c159ac1b6..c1238e00d35f4a 100644 --- a/Modules/_weakref.c +++ b/Modules/_weakref.c @@ -136,48 +136,14 @@ weakref_functions[] = { {NULL, NULL, 0, NULL} }; -static int -weakref_exec(PyObject *module) -{ - Py_INCREF(&_PyWeakref_RefType); - if (PyModule_AddObject(module, "ref", (PyObject *) &_PyWeakref_RefType) < 0) { - Py_DECREF(&_PyWeakref_RefType); - return -1; - } - Py_INCREF(&_PyWeakref_RefType); - if (PyModule_AddObject(module, "ReferenceType", - (PyObject *) &_PyWeakref_RefType) < 0) { - Py_DECREF(&_PyWeakref_RefType); - return -1; - } - Py_INCREF(&_PyWeakref_ProxyType); - if (PyModule_AddObject(module, "ProxyType", - (PyObject *) &_PyWeakref_ProxyType) < 0) { - Py_DECREF(&_PyWeakref_ProxyType); - return -1; - } - Py_INCREF(&_PyWeakref_CallableProxyType); - if (PyModule_AddObject(module, "CallableProxyType", - (PyObject *) &_PyWeakref_CallableProxyType) < 0) { - Py_DECREF(&_PyWeakref_CallableProxyType); - return -1; - } - - return 0; -} - -static struct PyModuleDef_Slot weakref_slots[] = { - {Py_mod_exec, weakref_exec}, - {0, NULL} -}; static struct PyModuleDef weakrefmodule = { PyModuleDef_HEAD_INIT, "_weakref", "Weak-reference support module.", - 0, + -1, weakref_functions, - weakref_slots, + NULL, NULL, NULL, NULL @@ -186,5 +152,23 @@ static struct PyModuleDef weakrefmodule = { PyMODINIT_FUNC PyInit__weakref(void) { - return PyModuleDef_Init(&weakrefmodule); + PyObject *m; + + m = PyModule_Create(&weakrefmodule); + + if (m != NULL) { + Py_INCREF(&_PyWeakref_RefType); + PyModule_AddObject(m, "ref", + (PyObject *) &_PyWeakref_RefType); + Py_INCREF(&_PyWeakref_RefType); + PyModule_AddObject(m, "ReferenceType", + (PyObject *) &_PyWeakref_RefType); + Py_INCREF(&_PyWeakref_ProxyType); + PyModule_AddObject(m, "ProxyType", + (PyObject *) &_PyWeakref_ProxyType); + Py_INCREF(&_PyWeakref_CallableProxyType); + PyModule_AddObject(m, "CallableProxyType", + (PyObject *) &_PyWeakref_CallableProxyType); + } + return m; } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy