[pypy-commit] pypy py3.6-asyncgen: Store w_yf on the frame instead of the generator
rlamy
pypy.commits at gmail.com
Thu Oct 3 13:15:42 EDT 2019
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: py3.6-asyncgen
Changeset: r97717:b1d846ebee27
Date: 2019-10-03 16:52 +0100
http://bitbucket.org/pypy/pypy/changeset/b1d846ebee27/
Log: Store w_yf on the frame instead of the generator
diff --git a/pypy/interpreter/generator.py b/pypy/interpreter/generator.py
--- a/pypy/interpreter/generator.py
+++ b/pypy/interpreter/generator.py
@@ -11,8 +11,6 @@
class GeneratorOrCoroutine(W_Root):
_immutable_fields_ = ['pycode']
- _w_yielded_from = None
-
def __init__(self, frame, name=None, qualname=None):
self.space = frame.space
self.frame = frame # turned into None when frame_finished_execution
@@ -180,10 +178,10 @@
return r_uint(0)
def get_delegate(self):
- return self._w_yielded_from
+ return self.frame.w_yielding_from
def set_delegate(self, w_delegate):
- self._w_yielded_from = w_delegate
+ self.frame.w_yielding_from = w_delegate
def next_yield_from(self, frame, w_yf, w_inputvalue_or_err):
"""Fetch the next item of the current 'yield from', push it on
diff --git a/pypy/interpreter/pyframe.py b/pypy/interpreter/pyframe.py
--- a/pypy/interpreter/pyframe.py
+++ b/pypy/interpreter/pyframe.py
@@ -68,6 +68,7 @@
frame_finished_execution = False
f_generator_wref = rweakref.dead_ref # for generators/coroutines
f_generator_nowref = None # (only one of the two attrs)
+ w_yielding_from = None
last_instr = -1
f_backref = jit.vref_None
More information about the pypy-commit
mailing list