[pypy-commit] pypy py3.5: Update BUILD_ methods
raffael_t
pypy.commits at gmail.com
Sun Jun 5 17:49:55 EDT 2016
Author: Raffael Tfirst <raffael.tfirst at gmail.com>
Branch: py3.5
Changeset: r84956:f02e8c9c821f
Date: 2016-06-05 23:49 +0200
http://bitbucket.org/pypy/pypy/changeset/f02e8c9c821f/
Log: Update BUILD_ methods
diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -1335,19 +1335,39 @@
def BUILD_TUPLE_UNPACK(self, itemcount, next_instr):
w_sum = self.space.newset()
- self.pushvalue(w_set)
+ for i in range(itemcount, 0, -1):
+ self.space.call_method(w_sum, 'update', self.space.peek(i))
+ while itemcount != 0:
+ self.popvalue()
+ itemcount -= 1
+ self.pushvalue(w_sum)
def BUILD_LIST_UNPACK(self, itemcount, next_instr):
w_sum = self.space.newset()
- self.pushvalue(w_set)
+ for i in range(itemcount, 0, -1):
+ self.space.call_method(w_sum, 'update', self.space.peek(i))
+ while itemcount != 0:
+ self.popvalue()
+ itemcount -= 1
+ self.pushvalue(w_sum)
def BUILD_MAP_UNPACK_WITH_CALL(self, itemcount, next_instr):
w_sum = self.space.newset()
- self.pushvalue(w_set)
+ for i in range(itemcount, 0, -1):
+ self.space.call_method(w_sum, 'update', self.space.peek(i))
+ while itemcount != 0:
+ self.popvalue()
+ itemcount -= 1
+ self.pushvalue(w_sum)
def BUILD_MAP_UNPACK(self, itemcount, next_instr):
w_sum = self.space.newset()
- self.pushvalue(w_set)
+ for i in range(itemcount, 0, -1):
+ self.space.call_method(w_sum, 'update', self.space.peek(i))
+ while itemcount != 0:
+ self.popvalue()
+ itemcount -= 1
+ self.pushvalue(w_sum)
### ____________________________________________________________ ###
class ExitFrame(Exception):
More information about the pypy-commit
mailing list