]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Revert "bpo-1635741: Port _weakref extension module to multiphase initialization...
authorVictor Stinner <vstinner@python.org>
Mon, 23 Mar 2020 23:48:03 +0000 (00:48 +0100)
committerGitHub <noreply@github.com>
Mon, 23 Mar 2020 23:48:03 +0000 (00:48 +0100)
bpo-1635741, bpo-40050: This reverts
commit 8334f30a74abcf7e469b901afc307887aa85a888.

Modules/_weakref.c

index cd7c4c159ac1b6a9c6e7bc10bacd66e1cd3f203d..c1238e00d35f4aa8315cd8d29790a1663a24dbc2 100644 (file)
@@ -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;
 }