Author: Ronan Lamy <ronan.l...@gmail.com>
Branch: framestate
Changeset: r74617:0c9d4802f0ab
Date: 2014-11-20 03:44 +0000
http://bitbucket.org/pypy/pypy/changeset/0c9d4802f0ab/

Log:    inline save_locals_stack() and restore_locals_stack()

diff --git a/rpython/flowspace/flowcontext.py b/rpython/flowspace/flowcontext.py
--- a/rpython/flowspace/flowcontext.py
+++ b/rpython/flowspace/flowcontext.py
@@ -344,17 +344,9 @@
             self.stack[n] = None
         self.stackdepth = finaldepth
 
-    def save_locals_stack(self):
-        return self.locals_w + self.stack[:self.stackdepth]
-
-    def restore_locals_stack(self, items_w):
-        self.locals_w = items_w[:self.nlocals]
-        self.stack[:len(items_w) - self.nlocals] = items_w[self.nlocals:]
-        self.dropvaluesuntil(len(items_w) - self.nlocals)
-
     def getstate(self, next_offset):
-        # getfastscope() can return real None, for undefined locals
-        data = self.save_locals_stack()
+        data = self.locals_w[:]
+        data.extend(self.stack[:self.stackdepth])
         if self.last_exception is None:
             data.append(Constant(None))
             data.append(Constant(None))
@@ -368,7 +360,9 @@
         """ Reset the context to the given frame state. """
         data = state.mergeable[:]
         recursively_unflatten(data)
-        self.restore_locals_stack(data[:-2])  # Nones == undefined locals
+        self.locals_w = data[:self.nlocals]
+        self.stack[:len(data) - 2 - self.nlocals] = data[self.nlocals:-2]
+        self.dropvaluesuntil(len(data) - 2 - self.nlocals)
         if data[-2] == Constant(None):
             assert data[-1] == Constant(None)
             self.last_exception = None
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to