mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-105481: remove HAS_ARG, HAS_CONST, IS_JUMP_OPCODE, IS_PSEUDO_OPCODE and replace by their new versions (#105865)
This commit is contained in:
parent
34e93d3998
commit
14d01262da
12 changed files with 38 additions and 138 deletions
|
@ -27,25 +27,16 @@ _opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg,
|
|||
PyObject *jump)
|
||||
/*[clinic end generated code: output=64a18f2ead954dbb input=461c9d4a44851898]*/
|
||||
{
|
||||
int effect;
|
||||
int oparg_int = 0;
|
||||
int jump_int;
|
||||
if (HAS_ARG(opcode)) {
|
||||
if (oparg == Py_None) {
|
||||
PyErr_SetString(PyExc_ValueError,
|
||||
"stack_effect: opcode requires oparg but oparg was not specified");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (oparg != Py_None) {
|
||||
oparg_int = (int)PyLong_AsLong(oparg);
|
||||
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");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (jump == Py_None) {
|
||||
jump_int = -1;
|
||||
}
|
||||
|
@ -60,11 +51,10 @@ _opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg,
|
|||
"stack_effect: jump must be False, True or None");
|
||||
return -1;
|
||||
}
|
||||
effect = PyCompile_OpcodeStackEffectWithJump(opcode, oparg_int, jump_int);
|
||||
int effect = PyCompile_OpcodeStackEffectWithJump(opcode, oparg_int, jump_int);
|
||||
if (effect == PY_INVALID_STACK_EFFECT) {
|
||||
PyErr_SetString(PyExc_ValueError,
|
||||
"invalid opcode or oparg");
|
||||
return -1;
|
||||
PyErr_SetString(PyExc_ValueError, "invalid opcode or oparg");
|
||||
return -1;
|
||||
}
|
||||
return effect;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue