Author: Raffael Tfirst <raffael.tfi...@gmail.com>
Branch: py3.5-async
Changeset: r85967:131f3d3c8682
Date: 2016-08-01 19:16 +0200
http://bitbucket.org/pypy/pypy/changeset/131f3d3c8682/

Log:    Fix switched None and iterable object on stack in GET_AWAITABLE
        (maybe a better fix is possible)

diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -1441,6 +1441,13 @@
             self.settopvalue(w_iterator)
     
     def GET_AWAITABLE(self, oparg, next_instr):
+        from pypy.objspace.std.noneobject import W_NoneObject
+        if isinstance(self.peekvalue(), W_NoneObject):
+            #switch NoneObject with iterable on stack
+            w_firstnone = self.popvalue()
+            w_i = self.popvalue()
+            self.pushvalue(w_firstnone)
+            self.pushvalue(w_i)
         w_iterable = self.peekvalue()
         w_iter = w_iterable._GetAwaitableIter(self.space)
         self.settopvalue(w_iter)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to