bpo-1635741: Port _hashlib to multiphase initialization (GH-23358)
Signed-off-by: Christian Heimes <christian@python.org>
This commit is contained in:
parent
c7011012fa
commit
46f59ebd01
|
@ -0,0 +1 @@
|
||||||
|
Port _hashlib extension module to multiphase initialization (:pep:`489`)
|
|
@ -2078,7 +2078,6 @@ hashlib_init_hmactype(PyObject *module)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static PyModuleDef_Slot hashlib_slots[] = {
|
static PyModuleDef_Slot hashlib_slots[] = {
|
||||||
/* OpenSSL 1.0.2 and LibreSSL */
|
/* OpenSSL 1.0.2 and LibreSSL */
|
||||||
{Py_mod_exec, hashlib_openssl_legacy_init},
|
{Py_mod_exec, hashlib_openssl_legacy_init},
|
||||||
|
@ -2088,7 +2087,6 @@ static PyModuleDef_Slot hashlib_slots[] = {
|
||||||
{Py_mod_exec, hashlib_md_meth_names},
|
{Py_mod_exec, hashlib_md_meth_names},
|
||||||
{0, NULL}
|
{0, NULL}
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct PyModuleDef _hashlibmodule = {
|
static struct PyModuleDef _hashlibmodule = {
|
||||||
PyModuleDef_HEAD_INIT,
|
PyModuleDef_HEAD_INIT,
|
||||||
|
@ -2096,7 +2094,7 @@ static struct PyModuleDef _hashlibmodule = {
|
||||||
.m_doc = "OpenSSL interface for hashlib module",
|
.m_doc = "OpenSSL interface for hashlib module",
|
||||||
.m_size = sizeof(_hashlibstate),
|
.m_size = sizeof(_hashlibstate),
|
||||||
.m_methods = EVP_functions,
|
.m_methods = EVP_functions,
|
||||||
.m_slots = NULL,
|
.m_slots = hashlib_slots,
|
||||||
.m_traverse = hashlib_traverse,
|
.m_traverse = hashlib_traverse,
|
||||||
.m_clear = hashlib_clear,
|
.m_clear = hashlib_clear,
|
||||||
.m_free = hashlib_free
|
.m_free = hashlib_free
|
||||||
|
@ -2105,37 +2103,5 @@ static struct PyModuleDef _hashlibmodule = {
|
||||||
PyMODINIT_FUNC
|
PyMODINIT_FUNC
|
||||||
PyInit__hashlib(void)
|
PyInit__hashlib(void)
|
||||||
{
|
{
|
||||||
PyObject *m = PyState_FindModule(&_hashlibmodule);
|
return PyModuleDef_Init(&_hashlibmodule);
|
||||||
if (m != NULL) {
|
|
||||||
Py_INCREF(m);
|
|
||||||
return m;
|
|
||||||
}
|
|
||||||
|
|
||||||
m = PyModule_Create(&_hashlibmodule);
|
|
||||||
if (m == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hashlib_openssl_legacy_init(m) < 0) {
|
|
||||||
Py_DECREF(m);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
if (hashlib_init_evptype(m) < 0) {
|
|
||||||
Py_DECREF(m);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
if (hashlib_init_evpxoftype(m) < 0) {
|
|
||||||
Py_DECREF(m);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
if (hashlib_init_hmactype(m) < 0) {
|
|
||||||
Py_DECREF(m);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
if (hashlib_md_meth_names(m) == -1) {
|
|
||||||
Py_DECREF(m);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return m;
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue