[pypy-commit] pypy no-class-specialize: Extract classdef init into a separate method

rlamy noreply at buildbot.pypy.org
Tue Oct 13 19:05:24 CEST 2015


Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: no-class-specialize
Changeset: r80169:fd655258c3c8
Date: 2015-10-13 18:05 +0100
http://bitbucket.org/pypy/pypy/changeset/fd655258c3c8/

Log:	Extract classdef init into a separate method

diff --git a/rpython/annotator/description.py b/rpython/annotator/description.py
--- a/rpython/annotator/description.py
+++ b/rpython/annotator/description.py
@@ -574,8 +574,9 @@
             self.add_source_attribute(name, value)
 
     def getclassdef(self, key):
-        if self.classdef is not None:
-            return self.classdef
+        return self.getuniqueclassdef()
+
+    def _init_classdef(self):
         from rpython.annotator.classdef import ClassDef
         classdef = ClassDef(self.bookkeeper, self)
         self.bookkeeper.classdefs.append(classdef)
@@ -604,7 +605,9 @@
         return classdef
 
     def getuniqueclassdef(self):
-        return self.getclassdef(None)
+        if self.classdef is None:
+            self._init_classdef()
+        return self.classdef
 
     def pycall(self, whence, args, s_previous_result, op=None):
         from rpython.annotator.model import SomeInstance, SomeImpossibleValue


More information about the pypy-commit mailing list