diff options
author | Victor Stinner <vstinner@python.org> | 2020-09-08 13:33:52 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-08 13:33:52 (GMT) |
commit | f315142ddc61e54a59028db562aec5f62db783e1 (patch) | |
tree | cbceef40b4cc0e9e788e0ab3e45e77dc9c1178b9 /Python | |
parent | bb083d33f7ffe93cee9e1f63d1e526dc81a6e34f (diff) | |
download | cpython-f315142ddc61e54a59028db562aec5f62db783e1.zip cpython-f315142ddc61e54a59028db562aec5f62db783e1.tar.gz cpython-f315142ddc61e54a59028db562aec5f62db783e1.tar.bz2 |
bpo-1635741: Port mashal module to multi-phase init (#22149)
Port the 'mashal' extension module to the multi-phase initialization
API (PEP 489).
Diffstat (limited to 'Python')
-rw-r--r-- | Python/marshal.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/Python/marshal.c b/Python/marshal.c index c4538bd..91a0f8a 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -1785,28 +1785,30 @@ dumps() -- marshal value as a bytes object\n\ loads() -- read value from a bytes-like object"); +static int +marshal_module_exec(PyObject *mod) +{ + if (PyModule_AddIntConstant(mod, "version", Py_MARSHAL_VERSION) < 0) { + return -1; + } + return 0; +} + +static PyModuleDef_Slot marshalmodule_slots[] = { + {Py_mod_exec, marshal_module_exec}, + {0, NULL} +}; static struct PyModuleDef marshalmodule = { PyModuleDef_HEAD_INIT, - "marshal", - module_doc, - 0, - marshal_methods, - NULL, - NULL, - NULL, - NULL + .m_name = "marshal", + .m_doc = module_doc, + .m_methods = marshal_methods, + .m_slots = marshalmodule_slots, }; PyMODINIT_FUNC PyMarshal_Init(void) { - PyObject *mod = PyModule_Create(&marshalmodule); - if (mod == NULL) - return NULL; - if (PyModule_AddIntConstant(mod, "version", Py_MARSHAL_VERSION) < 0) { - Py_DECREF(mod); - return NULL; - } - return mod; + return PyModuleDef_Init(&marshalmodule); } |