Author: Raffael Tfirst <raffael.tfi...@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): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit