From 7d5174df3d3ce5f208894358d07b60d861033170 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 23 Mar 2020 23:43:15 +0100 Subject: [PATCH] Revert "bpo-1635741: Port _weakref extension module to multiphase initialization (PEP 489) (GH-19084)" bpo-1635741, bpo-40050: This reverts commit 8334f30a74abcf7e469b901afc307887aa85a888. --- Modules/_weakref.c | 58 +++++++++++++++++----------------------------- 1 file changed, 21 insertions(+), 37 deletions(-) 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