[pypy-svn] r20250 - pypy/branch/somepbc-refactoring/pypy/rpython/lltypesystem

arigo at codespeak.net arigo at codespeak.net
Fri Nov 25 18:48:26 CET 2005


Author: arigo
Date: Fri Nov 25 18:48:21 2005
New Revision: 20250

Modified:
   pypy/branch/somepbc-refactoring/pypy/rpython/lltypesystem/rclass.py
Log:
(mwh, pedronis, arigo)

fixed InstanceRepr.convert_const().


Modified: pypy/branch/somepbc-refactoring/pypy/rpython/lltypesystem/rclass.py
==============================================================================
--- pypy/branch/somepbc-refactoring/pypy/rpython/lltypesystem/rclass.py	(original)
+++ pypy/branch/somepbc-refactoring/pypy/rpython/lltypesystem/rclass.py	Fri Nov 25 18:48:21 2005
@@ -352,15 +352,12 @@
     def convert_const(self, value):
         if value is None:
             return nullptr(self.object_type)
-        try:
-            classdef = self.rtyper.annotator.getuserclasses()[value.__class__]
-        except KeyError:
-            raise TyperError("no classdef: %r" % (value.__class__,))
+        cls = value.__class__
+        bk = self.rtyper.annotator.bookkeeper
+        classdef = bk.getdesc(cls).getuniqueclassdef()
         if classdef != self.classdef:
             # if the class does not match exactly, check that 'value' is an
             # instance of a subclass and delegate to that InstanceRepr
-            if classdef is None:
-                raise TyperError("not implemented: object() instance")
             if classdef.commonbase(self.classdef) != self.classdef:
                 raise TyperError("not an instance of %r: %r" % (
                     self.classdef.cls, value))



More information about the Pypy-commit mailing list