summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/src/Modules/symtablemodule.c
diff options
context:
space:
mode:
authorshadchin <[email protected]>2022-04-18 12:39:32 +0300
committershadchin <[email protected]>2022-04-18 12:39:32 +0300
commitd4be68e361f4258cf0848fc70018dfe37a2acc24 (patch)
tree153e294cd97ac8b5d7a989612704a0c1f58e8ad4 /contrib/tools/python3/src/Modules/symtablemodule.c
parent260c02f5ccf242d9d9b8a873afaf6588c00237d6 (diff)
IGNIETFERRO-1816 Update Python 3 from 3.9.12 to 3.10.4
ref:9f96be6d02ee8044fdd6f124b799b270c20ce641
Diffstat (limited to 'contrib/tools/python3/src/Modules/symtablemodule.c')
-rw-r--r--contrib/tools/python3/src/Modules/symtablemodule.c100
1 files changed, 50 insertions, 50 deletions
diff --git a/contrib/tools/python3/src/Modules/symtablemodule.c b/contrib/tools/python3/src/Modules/symtablemodule.c
index 9180f185e1e..c25ecc2b5dc 100644
--- a/contrib/tools/python3/src/Modules/symtablemodule.c
+++ b/contrib/tools/python3/src/Modules/symtablemodule.c
@@ -1,8 +1,5 @@
#include "Python.h"
-
-#include "code.h"
-#include "Python-ast.h"
-#include "symtable.h"
+#include "pycore_symtable.h" // struct symtable
#include "clinic/symtablemodule.c.h"
/*[clinic input]
@@ -61,8 +58,7 @@ _symtable_symtable_impl(PyObject *module, PyObject *source,
}
t = (PyObject *)st->st_top;
Py_INCREF(t);
- PyMem_Free((void *)st->st_future);
- PySymtable_Free(st);
+ _PySymtable_Free(st);
return t;
}
@@ -71,56 +67,60 @@ static PyMethodDef symtable_methods[] = {
{NULL, NULL} /* sentinel */
};
-static struct PyModuleDef symtablemodule = {
- PyModuleDef_HEAD_INIT,
- "_symtable",
- NULL,
- -1,
- symtable_methods,
- NULL,
- NULL,
- NULL,
- NULL
-};
+static int
+symtable_init_stentry_type(PyObject *m)
+{
+ return PyType_Ready(&PySTEntry_Type);
+}
-PyMODINIT_FUNC
-PyInit__symtable(void)
+static int
+symtable_init_constants(PyObject *m)
{
- PyObject *m;
+ if (PyModule_AddIntMacro(m, USE) < 0) return -1;
+ if (PyModule_AddIntMacro(m, DEF_GLOBAL) < 0) return -1;
+ if (PyModule_AddIntMacro(m, DEF_NONLOCAL) < 0) return -1;
+ if (PyModule_AddIntMacro(m, DEF_LOCAL) < 0) return -1;
+ if (PyModule_AddIntMacro(m, DEF_PARAM) < 0) return -1;
+ if (PyModule_AddIntMacro(m, DEF_FREE) < 0) return -1;
+ if (PyModule_AddIntMacro(m, DEF_FREE_CLASS) < 0) return -1;
+ if (PyModule_AddIntMacro(m, DEF_IMPORT) < 0) return -1;
+ if (PyModule_AddIntMacro(m, DEF_BOUND) < 0) return -1;
+ if (PyModule_AddIntMacro(m, DEF_ANNOT) < 0) return -1;
- if (PyType_Ready(&PySTEntry_Type) < 0)
- return NULL;
+ if (PyModule_AddIntConstant(m, "TYPE_FUNCTION", FunctionBlock) < 0)
+ return -1;
+ if (PyModule_AddIntConstant(m, "TYPE_CLASS", ClassBlock) < 0) return -1;
+ if (PyModule_AddIntConstant(m, "TYPE_MODULE", ModuleBlock) < 0)
+ return -1;
- m = PyModule_Create(&symtablemodule);
- if (m == NULL)
- return NULL;
- PyModule_AddIntMacro(m, USE);
- PyModule_AddIntMacro(m, DEF_GLOBAL);
- PyModule_AddIntMacro(m, DEF_NONLOCAL);
- PyModule_AddIntMacro(m, DEF_LOCAL);
- PyModule_AddIntMacro(m, DEF_PARAM);
- PyModule_AddIntMacro(m, DEF_FREE);
- PyModule_AddIntMacro(m, DEF_FREE_CLASS);
- PyModule_AddIntMacro(m, DEF_IMPORT);
- PyModule_AddIntMacro(m, DEF_BOUND);
- PyModule_AddIntMacro(m, DEF_ANNOT);
+ if (PyModule_AddIntMacro(m, LOCAL) < 0) return -1;
+ if (PyModule_AddIntMacro(m, GLOBAL_EXPLICIT) < 0) return -1;
+ if (PyModule_AddIntMacro(m, GLOBAL_IMPLICIT) < 0) return -1;
+ if (PyModule_AddIntMacro(m, FREE) < 0) return -1;
+ if (PyModule_AddIntMacro(m, CELL) < 0) return -1;
- PyModule_AddIntConstant(m, "TYPE_FUNCTION", FunctionBlock);
- PyModule_AddIntConstant(m, "TYPE_CLASS", ClassBlock);
- PyModule_AddIntConstant(m, "TYPE_MODULE", ModuleBlock);
+ if (PyModule_AddIntConstant(m, "SCOPE_OFF", SCOPE_OFFSET) < 0) return -1;
+ if (PyModule_AddIntMacro(m, SCOPE_MASK) < 0) return -1;
- PyModule_AddIntMacro(m, LOCAL);
- PyModule_AddIntMacro(m, GLOBAL_EXPLICIT);
- PyModule_AddIntMacro(m, GLOBAL_IMPLICIT);
- PyModule_AddIntMacro(m, FREE);
- PyModule_AddIntMacro(m, CELL);
+ return 0;
+}
- PyModule_AddIntConstant(m, "SCOPE_OFF", SCOPE_OFFSET);
- PyModule_AddIntMacro(m, SCOPE_MASK);
+static PyModuleDef_Slot symtable_slots[] = {
+ {Py_mod_exec, symtable_init_stentry_type},
+ {Py_mod_exec, symtable_init_constants},
+ {0, NULL}
+};
- if (PyErr_Occurred()) {
- Py_DECREF(m);
- m = 0;
- }
- return m;
+static struct PyModuleDef symtablemodule = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "_symtable",
+ .m_size = 0,
+ .m_methods = symtable_methods,
+ .m_slots = symtable_slots,
+};
+
+PyMODINIT_FUNC
+PyInit__symtable(void)
+{
+ return PyModuleDef_Init(&symtablemodule);
}