bpo-1635741: Port _opcode module to multi-phase init (PEP 489) (GH-22050)

This commit is contained in:
Mohamed Koubaa 2020-09-07 03:48:44 -05:00 committed by GitHub
parent 1aaa21ff81
commit 426f2b4f13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 14 deletions

View File

@ -0,0 +1,2 @@
Port the :mod:`_opcode` extension module to multi-phase initialization
(:pep:`489`).

View File

@ -36,9 +36,10 @@ _opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg,
return -1;
}
oparg_int = (int)PyLong_AsLong(oparg);
if ((oparg_int == -1) && PyErr_Occurred())
if ((oparg_int == -1) && PyErr_Occurred()) {
return -1;
}
}
else if (oparg != Py_None) {
PyErr_SetString(PyExc_ValueError,
"stack_effect: opcode does not permit oparg but oparg was specified");
@ -67,30 +68,22 @@ _opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg,
return effect;
}
static PyMethodDef
opcode_functions[] = {
_OPCODE_STACK_EFFECT_METHODDEF
{NULL, NULL, 0, NULL}
};
static struct PyModuleDef opcodemodule = {
PyModuleDef_HEAD_INIT,
"_opcode",
"Opcode support module.",
-1,
opcode_functions,
NULL,
NULL,
NULL,
NULL
.m_name = "_opcode",
.m_doc = "Opcode support module.",
.m_size = 0,
.m_methods = opcode_functions
};
PyMODINIT_FUNC
PyInit__opcode(void)
{
return PyModule_Create(&opcodemodule);
return PyModuleDef_Init(&opcodemodule);
}