summaryrefslogtreecommitdiff
path: root/Objects/frameobject.c
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2021-12-15 10:30:09 +0000
committerGitHub <noreply@github.com>2021-12-15 10:30:09 +0000
commit0b50a4f0cdee41a18fb4ba6e75569f9cfaceb39e (patch)
tree307cc32e8ca72f71eaa8250e976306adc939e9fd /Objects/frameobject.c
parent86de99588db3beff964137f4fe27dd1077a09b35 (diff)
downloadcpython-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.c8
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);