[pypy-svn] r7495 - pypy/trunk/src/pypy/interpreter

arigo at codespeak.net arigo at codespeak.net
Sat Nov 20 11:45:28 CET 2004


Author: arigo
Date: Sat Nov 20 11:45:27 2004
New Revision: 7495

Modified:
   pypy/trunk/src/pypy/interpreter/miscutils.py
   pypy/trunk/src/pypy/interpreter/pyopcode.py
Log:
unclean hacking to make the translator ignore __initclass__

Modified: pypy/trunk/src/pypy/interpreter/miscutils.py
==============================================================================
--- pypy/trunk/src/pypy/interpreter/miscutils.py	(original)
+++ pypy/trunk/src/pypy/interpreter/miscutils.py	Sat Nov 20 11:45:27 2004
@@ -44,11 +44,10 @@
     subclasses) by calling __initclass__() as a class method."""
     def __init__(self, name, bases, dict):
         super(InitializedClass, self).__init__(name, bases, dict)
-        if hasattr(self, '__initclass__'):
-            raw = dict.get('__initclass__')
+        for basecls in self.__mro__:
+            raw = basecls.__dict__.get('__initclass__')
             if isinstance(raw, types.FunctionType):
-                self.__initclass__ = classmethod(raw)
-            self.__initclass__()
+                raw(self)   # call it as a class method
 
 
 class RwDictProxy(object):

Modified: pypy/trunk/src/pypy/interpreter/pyopcode.py
==============================================================================
--- pypy/trunk/src/pypy/interpreter/pyopcode.py	(original)
+++ pypy/trunk/src/pypy/interpreter/pyopcode.py	Sat Nov 20 11:45:27 2004
@@ -769,6 +769,7 @@
 
     __metaclass__ = InitializedClass
     def __initclass__(cls):
+        "NOT_RPYTHON"
         # create the 'cls.dispatch_table' attribute
         import dis
         dispatch_table = []



More information about the Pypy-commit mailing list