mirror of https://github.com/python/cpython
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;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static PyModuleDef_Slot hashlib_slots[] = {
|
||||
/* OpenSSL 1.0.2 and LibreSSL */
|
||||
{Py_mod_exec, hashlib_openssl_legacy_init},
|
||||
|
@ -2088,7 +2087,6 @@ static PyModuleDef_Slot hashlib_slots[] = {
|
|||
{Py_mod_exec, hashlib_md_meth_names},
|
||||
{0, NULL}
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct PyModuleDef _hashlibmodule = {
|
||||
PyModuleDef_HEAD_INIT,
|
||||
|
@ -2096,7 +2094,7 @@ static struct PyModuleDef _hashlibmodule = {
|
|||
.m_doc = "OpenSSL interface for hashlib module",
|
||||
.m_size = sizeof(_hashlibstate),
|
||||
.m_methods = EVP_functions,
|
||||
.m_slots = NULL,
|
||||
.m_slots = hashlib_slots,
|
||||
.m_traverse = hashlib_traverse,
|
||||
.m_clear = hashlib_clear,
|
||||
.m_free = hashlib_free
|
||||
|
@ -2105,37 +2103,5 @@ static struct PyModuleDef _hashlibmodule = {
|
|||
PyMODINIT_FUNC
|
||||
PyInit__hashlib(void)
|
||||
{
|
||||
PyObject *m = PyState_FindModule(&_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;
|
||||
return PyModuleDef_Init(&_hashlibmodule);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue