Skip to content

Commit 2f9539b

Browse files
committed
Don't ever decrement datastack_top!
1 parent c7ad988 commit 2f9539b

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

Python/bytecodes.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4160,9 +4160,11 @@ dummy_func(
41604160

41614161
op(_GROW_TIER2_FRAME, (--)) {
41624162
DEOPT_IF(frame->owner != FRAME_OWNED_BY_THREAD);
4163-
DEOPT_IF(stack_pointer + oparg > tstate->datastack_limit);
41644163
assert(stack_pointer <= tstate->datastack_top);
4165-
tstate->datastack_top = stack_pointer + oparg;
4164+
if (stack_pointer + oparg > tstate->datastack_top) {
4165+
DEOPT_IF(stack_pointer + oparg > tstate->datastack_limit);
4166+
tstate->datastack_top = stack_pointer + oparg;
4167+
}
41664168
}
41674169

41684170

Python/executor_cases.c.h

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/optimizer_cases.c.h

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)