summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorIrit Katriel <1055913+iritkatriel@users.noreply.github.com>2024-06-24 09:23:38 (GMT)
committerGitHub <noreply@github.com>2024-06-24 09:23:38 (GMT)
commit65a12c559cbc13c2c5a4aa65c76310bd8d2051a7 (patch)
treeb244c6b535201b29b5e5e1ecaede6bc89ad4170f /Python
parentc38e2f64d012929168dfef7363c9e48bd1a6c731 (diff)
downloadcpython-65a12c559cbc13c2c5a4aa65c76310bd8d2051a7.zip
cpython-65a12c559cbc13c2c5a4aa65c76310bd8d2051a7.tar.gz
cpython-65a12c559cbc13c2c5a4aa65c76310bd8d2051a7.tar.bz2
gh-120834: fix type of *_iframe field in _PyGenObject_HEAD declaration (#120835)
Diffstat (limited to 'Python')
-rw-r--r--Python/bytecodes.c12
-rw-r--r--Python/ceval.c2
-rw-r--r--Python/executor_cases.c.h6
-rw-r--r--Python/frame.c2
-rw-r--r--Python/generated_cases.c.h12
-rw-r--r--Python/pylifecycle.c1
6 files changed, 17 insertions, 18 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c
index 50444bc..a6fb862 100644
--- a/Python/bytecodes.c
+++ b/Python/bytecodes.c
@@ -1015,7 +1015,7 @@ dummy_func(
((PyGenObject *)receiver)->gi_frame_state < FRAME_EXECUTING)
{
PyGenObject *gen = (PyGenObject *)receiver;
- _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe;
+ _PyInterpreterFrame *gen_frame = &gen->gi_iframe;
STACK_SHRINK(1);
_PyFrame_StackPush(gen_frame, v);
gen->gi_frame_state = FRAME_EXECUTING;
@@ -1055,7 +1055,7 @@ dummy_func(
DEOPT_IF(Py_TYPE(gen) != &PyGen_Type && Py_TYPE(gen) != &PyCoro_Type);
DEOPT_IF(gen->gi_frame_state >= FRAME_EXECUTING);
STAT_INC(SEND, hit);
- _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe;
+ _PyInterpreterFrame *gen_frame = &gen->gi_iframe;
STACK_SHRINK(1);
_PyFrame_StackPush(gen_frame, v);
gen->gi_frame_state = FRAME_EXECUTING;
@@ -1069,7 +1069,7 @@ dummy_func(
inst(INSTRUMENTED_YIELD_VALUE, (retval -- unused)) {
assert(frame != &entry_frame);
frame->instr_ptr = next_instr;
- PyGenObject *gen = _PyFrame_GetGenerator(frame);
+ PyGenObject *gen = _PyGen_GetGeneratorFromFrame(frame);
assert(FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1);
assert(oparg == 0 || oparg == 1);
gen->gi_frame_state = FRAME_SUSPENDED + oparg;
@@ -1099,7 +1099,7 @@ dummy_func(
assert(frame != &entry_frame);
#endif
frame->instr_ptr++;
- PyGenObject *gen = _PyFrame_GetGenerator(frame);
+ PyGenObject *gen = _PyGen_GetGeneratorFromFrame(frame);
assert(FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1);
assert(oparg == 0 || oparg == 1);
gen->gi_frame_state = FRAME_SUSPENDED + oparg;
@@ -2799,7 +2799,7 @@ dummy_func(
DEOPT_IF(Py_TYPE(gen) != &PyGen_Type);
DEOPT_IF(gen->gi_frame_state >= FRAME_EXECUTING);
STAT_INC(FOR_ITER, hit);
- gen_frame = (_PyInterpreterFrame *)gen->gi_iframe;
+ gen_frame = &gen->gi_iframe;
_PyFrame_StackPush(gen_frame, Py_None);
gen->gi_frame_state = FRAME_EXECUTING;
gen->gi_exc_state.previous_item = tstate->exc_info;
@@ -3940,7 +3940,7 @@ dummy_func(
}
assert(EMPTY());
_PyFrame_SetStackPointer(frame, stack_pointer);
- _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe;
+ _PyInterpreterFrame *gen_frame = &gen->gi_iframe;
frame->instr_ptr++;
_PyFrame_Copy(frame, gen_frame);
assert(frame->frame_obj == NULL);
diff --git a/Python/ceval.c b/Python/ceval.c
index a8df045..d36e15e 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1711,7 +1711,7 @@ static void
clear_gen_frame(PyThreadState *tstate, _PyInterpreterFrame * frame)
{
assert(frame->owner == FRAME_OWNED_BY_GENERATOR);
- PyGenObject *gen = _PyFrame_GetGenerator(frame);
+ PyGenObject *gen = _PyGen_GetGeneratorFromFrame(frame);
gen->gi_frame_state = FRAME_CLEARED;
assert(tstate->exc_info == &gen->gi_exc_state);
tstate->exc_info = gen->gi_exc_state.previous_item;
diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h
index b4e5261..cdfffcd 100644
--- a/Python/executor_cases.c.h
+++ b/Python/executor_cases.c.h
@@ -1125,7 +1125,7 @@
assert(frame != &entry_frame);
#endif
frame->instr_ptr++;
- PyGenObject *gen = _PyFrame_GetGenerator(frame);
+ PyGenObject *gen = _PyGen_GetGeneratorFromFrame(frame);
assert(FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1);
assert(oparg == 0 || oparg == 1);
gen->gi_frame_state = FRAME_SUSPENDED + oparg;
@@ -2871,7 +2871,7 @@
JUMP_TO_JUMP_TARGET();
}
STAT_INC(FOR_ITER, hit);
- gen_frame = (_PyInterpreterFrame *)gen->gi_iframe;
+ gen_frame = &gen->gi_iframe;
_PyFrame_StackPush(gen_frame, Py_None);
gen->gi_frame_state = FRAME_EXECUTING;
gen->gi_exc_state.previous_item = tstate->exc_info;
@@ -4110,7 +4110,7 @@
}
assert(EMPTY());
_PyFrame_SetStackPointer(frame, stack_pointer);
- _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe;
+ _PyInterpreterFrame *gen_frame = &gen->gi_iframe;
frame->instr_ptr++;
_PyFrame_Copy(frame, gen_frame);
assert(frame->frame_obj == NULL);
diff --git a/Python/frame.c b/Python/frame.c
index 2bb1282..7299a39 100644
--- a/Python/frame.c
+++ b/Python/frame.c
@@ -112,7 +112,7 @@ _PyFrame_ClearExceptCode(_PyInterpreterFrame *frame)
/* It is the responsibility of the owning generator/coroutine
* to have cleared the enclosing generator, if any. */
assert(frame->owner != FRAME_OWNED_BY_GENERATOR ||
- _PyFrame_GetGenerator(frame)->gi_frame_state == FRAME_CLEARED);
+ _PyGen_GetGeneratorFromFrame(frame)->gi_frame_state == FRAME_CLEARED);
// GH-99729: Clearing this frame can expose the stack (via finalizers). It's
// crucial that this frame has been unlinked, and is no longer visible:
assert(_PyThreadState_GET()->current_frame != frame);
diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h
index 3980f98..327a704 100644
--- a/Python/generated_cases.c.h
+++ b/Python/generated_cases.c.h
@@ -2747,7 +2747,7 @@
DEOPT_IF(Py_TYPE(gen) != &PyGen_Type, FOR_ITER);
DEOPT_IF(gen->gi_frame_state >= FRAME_EXECUTING, FOR_ITER);
STAT_INC(FOR_ITER, hit);
- gen_frame = (_PyInterpreterFrame *)gen->gi_iframe;
+ gen_frame = &gen->gi_iframe;
_PyFrame_StackPush(gen_frame, Py_None);
gen->gi_frame_state = FRAME_EXECUTING;
gen->gi_exc_state.previous_item = tstate->exc_info;
@@ -3461,7 +3461,7 @@
retval = stack_pointer[-1];
assert(frame != &entry_frame);
frame->instr_ptr = next_instr;
- PyGenObject *gen = _PyFrame_GetGenerator(frame);
+ PyGenObject *gen = _PyGen_GetGeneratorFromFrame(frame);
assert(FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1);
assert(oparg == 0 || oparg == 1);
gen->gi_frame_state = FRAME_SUSPENDED + oparg;
@@ -5180,7 +5180,7 @@
}
assert(EMPTY());
_PyFrame_SetStackPointer(frame, stack_pointer);
- _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe;
+ _PyInterpreterFrame *gen_frame = &gen->gi_iframe;
frame->instr_ptr++;
_PyFrame_Copy(frame, gen_frame);
assert(frame->frame_obj == NULL);
@@ -5260,7 +5260,7 @@
((PyGenObject *)receiver)->gi_frame_state < FRAME_EXECUTING)
{
PyGenObject *gen = (PyGenObject *)receiver;
- _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe;
+ _PyInterpreterFrame *gen_frame = &gen->gi_iframe;
STACK_SHRINK(1);
_PyFrame_StackPush(gen_frame, v);
gen->gi_frame_state = FRAME_EXECUTING;
@@ -5310,7 +5310,7 @@
DEOPT_IF(Py_TYPE(gen) != &PyGen_Type && Py_TYPE(gen) != &PyCoro_Type, SEND);
DEOPT_IF(gen->gi_frame_state >= FRAME_EXECUTING, SEND);
STAT_INC(SEND, hit);
- _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe;
+ _PyInterpreterFrame *gen_frame = &gen->gi_iframe;
STACK_SHRINK(1);
_PyFrame_StackPush(gen_frame, v);
gen->gi_frame_state = FRAME_EXECUTING;
@@ -6198,7 +6198,7 @@
assert(frame != &entry_frame);
#endif
frame->instr_ptr++;
- PyGenObject *gen = _PyFrame_GetGenerator(frame);
+ PyGenObject *gen = _PyGen_GetGeneratorFromFrame(frame);
assert(FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1);
assert(oparg == 0 || oparg == 1);
gen->gi_frame_state = FRAME_SUSPENDED + oparg;
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 3639cf6..a7b4d7e 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -10,7 +10,6 @@
#include "pycore_exceptions.h" // _PyExc_InitTypes()
#include "pycore_fileutils.h" // _Py_ResetForceASCII()
#include "pycore_floatobject.h" // _PyFloat_InitTypes()
-#include "pycore_genobject.h" // _PyAsyncGen_Fini()
#include "pycore_global_objects_fini_generated.h" // "_PyStaticObjects_CheckRefcnt()
#include "pycore_import.h" // _PyImport_BootstrapImp()
#include "pycore_initconfig.h" // _PyStatus_OK()