[pypy-svn] r25793 - in pypy/dist/pypy: rpython/memory translator/c

cfbolz at codespeak.net cfbolz at codespeak.net
Thu Apr 13 16:05:57 CEST 2006


Author: cfbolz
Date: Thu Apr 13 16:05:57 2006
New Revision: 25793

Modified:
   pypy/dist/pypy/rpython/memory/gctransform.py
   pypy/dist/pypy/translator/c/gc.py
Log:
remove the really strange inheritance of the Framework classes from the boehm classes


Modified: pypy/dist/pypy/rpython/memory/gctransform.py
==============================================================================
--- pypy/dist/pypy/rpython/memory/gctransform.py	(original)
+++ pypy/dist/pypy/rpython/memory/gctransform.py	Thu Apr 13 16:05:57 2006
@@ -664,7 +664,7 @@
                     yield a
 
 
-class FrameworkGCTransformer(BoehmGCTransformer):
+class FrameworkGCTransformer(GCTransformer):
 
     def __init__(self, translator):
         from pypy.rpython.memory.support import get_address_linked_list

Modified: pypy/dist/pypy/translator/c/gc.py
==============================================================================
--- pypy/dist/pypy/translator/c/gc.py	(original)
+++ pypy/dist/pypy/translator/c/gc.py	Thu Apr 13 16:05:57 2006
@@ -263,11 +263,22 @@
     def pre_pre_gc_code(self):
         yield '#define USING_NO_GC'
 
-# the framework GC policy -- we are very optimistic tonight
 
-class FrameworkGcPolicy(NoneGcPolicy):
+class FrameworkGcPolicy(BasicGcPolicy):
     transformerclass = gctransform.FrameworkGCTransformer
 
+    def struct_setup(self, structdefnode, rtti):
+        pass
+
+    def array_setup(self, arraydefnode):
+        pass
+
+    def rtti_type(self):
+        return BoehmGcRuntimeTypeInfo_OpaqueNode.typename
+
+    def rtti_node_factory(self):
+        return BoehmGcRuntimeTypeInfo_OpaqueNode
+
     def gc_startup_code(self):
         fnptr = self.db.gctransformer.frameworkgc_setup_ptr.value
         yield '%s();' % (self.db.get(fnptr),)
@@ -292,3 +303,9 @@
                 break
             o = n
         return [defnode.db.gctransformer.id_of_type[typeOf(o)] << 1]
+
+    def zero_malloc(self, TYPE, esize, eresult):
+        assert TYPE._gcstatus()   # we don't really support this
+        return 'OP_ZERO_MALLOC(%s, %s);' % (esize,
+                                            eresult)
+



More information about the Pypy-commit mailing list