diff options
author | Mark Shannon <mark@hotpy.org> | 2021-12-15 10:30:09 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-15 10:30:09 +0000 |
commit | 0b50a4f0cdee41a18fb4ba6e75569f9cfaceb39e (patch) | |
tree | 307cc32e8ca72f71eaa8250e976306adc939e9fd /Objects/frameobject.c | |
parent | 86de99588db3beff964137f4fe27dd1077a09b35 (diff) | |
download | cpython-git-0b50a4f0cdee41a18fb4ba6e75569f9cfaceb39e.tar.gz |
bpo-46039: Split yield from in two (GH-30035)
* Split YIELD_FROM opcode into SEND and JUMP_ABSOLUTE.
* Remove YIELD_FROM opcode.
Diffstat (limited to 'Objects/frameobject.c')
-rw-r--r-- | Objects/frameobject.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Objects/frameobject.c b/Objects/frameobject.c index 82931b6e85..fc62713aa2 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -249,7 +249,13 @@ mark_stacks(PyCodeObject *code_obj, int len) next_stack = pop_value(pop_value(pop_value(next_stack))); stacks[i+1] = next_stack; break; - + case SEND: + j = get_arg(code, i) + i + 1; + assert(j < len); + assert(stacks[j] == UNINITIALIZED || stacks[j] == pop_value(next_stack)); + stacks[j] = pop_value(next_stack); + stacks[i+1] = next_stack; + break; case JUMP_FORWARD: j = get_arg(code, i) + i + 1; assert(j < len); |