[pypy-commit] pypy py3k: rearrange

pjenvey pypy.commits at gmail.com
Sun May 22 14:33:41 EDT 2016


Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3k
Changeset: r84583:f9912e70c5a9
Date: 2016-05-22 11:24 -0700
http://bitbucket.org/pypy/pypy/changeset/f9912e70c5a9/

Log:	rearrange

diff --git a/pypy/module/__builtin__/descriptor.py b/pypy/module/__builtin__/descriptor.py
--- a/pypy/module/__builtin__/descriptor.py
+++ b/pypy/module/__builtin__/descriptor.py
@@ -15,7 +15,9 @@
 
     def descr_init(self, space, w_starttype=None, w_obj_or_type=None):
         if space.is_none(w_starttype):
-            w_starttype, w_obj_or_type = _super_from_frame(space)
+            frame = space.getexecutioncontext().gettopframe()
+            w_starttype, w_obj_or_type = _super_from_frame(space, frame)
+
         if space.is_none(w_obj_or_type):
             w_type = None  # unbound super object
             w_obj_or_type = space.w_None
@@ -57,11 +59,10 @@
         # fallback to object.__getattribute__()
         return space.call_function(object_getattribute(space), self, w_name)
 
-def _super_from_frame(space):
+def _super_from_frame(space, frame):
     """super() without args -- fill in from __class__ and first local
     variable on the stack.
     """
-    frame = space.getexecutioncontext().gettopframe()
     code = frame.pycode
     if not code:
         raise oefmt(space.w_RuntimeError, "super(): no code object")
@@ -70,8 +71,9 @@
     w_obj = frame.locals_cells_stack_w[0]
     if not w_obj:
         raise oefmt(space.w_RuntimeError, "super(): arg[0] deleted")
+
     for index, name in enumerate(code.co_freevars):
-        if name == "__class__":
+        if name == '__class__':
             break
     else:
         raise oefmt(space.w_RuntimeError, "super(): __class__ cell not found")


More information about the pypy-commit mailing list