[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