mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
bpo-47120: make JUMP_NO_INTERRUPT relative (GH-32221)
This commit is contained in:
parent
32091df41c
commit
0aa8d5cbd8
11 changed files with 56 additions and 46 deletions
|
|
@ -229,15 +229,6 @@ mark_stacks(PyCodeObject *code_obj, int len)
|
|||
stacks[i+1] = next_stack;
|
||||
break;
|
||||
}
|
||||
case JUMP_NO_INTERRUPT:
|
||||
j = get_arg(code, i);
|
||||
assert(j < len);
|
||||
if (stacks[j] == UNINITIALIZED && j < i) {
|
||||
todo = 1;
|
||||
}
|
||||
assert(stacks[j] == UNINITIALIZED || stacks[j] == next_stack);
|
||||
stacks[j] = next_stack;
|
||||
break;
|
||||
case POP_EXCEPT:
|
||||
next_stack = pop_value(pop_value(pop_value(next_stack)));
|
||||
stacks[i+1] = next_stack;
|
||||
|
|
@ -256,8 +247,13 @@ mark_stacks(PyCodeObject *code_obj, int len)
|
|||
stacks[j] = next_stack;
|
||||
break;
|
||||
case JUMP_BACKWARD:
|
||||
case JUMP_BACKWARD_NO_INTERRUPT:
|
||||
j = i + 1 - get_arg(code, i);
|
||||
assert(j >= 0);
|
||||
assert(j < len);
|
||||
if (stacks[j] == UNINITIALIZED && j < i) {
|
||||
todo = 1;
|
||||
}
|
||||
assert(stacks[j] == UNINITIALIZED || stacks[j] == next_stack);
|
||||
stacks[j] = next_stack;
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue