[pypy-svn] r33064 - pypy/dist/pypy/rpython/memory/gctransform

mwh at codespeak.net mwh at codespeak.net
Mon Oct 9 17:03:32 CEST 2006


Author: mwh
Date: Mon Oct  9 17:03:31 2006
New Revision: 33064

Modified:
   pypy/dist/pypy/rpython/memory/gctransform/framework.py
Log:
reenable the non zeroing of memory in the framework gcs.


Modified: pypy/dist/pypy/rpython/memory/gctransform/framework.py
==============================================================================
--- pypy/dist/pypy/rpython/memory/gctransform/framework.py	(original)
+++ pypy/dist/pypy/rpython/memory/gctransform/framework.py	Mon Oct  9 17:03:31 2006
@@ -469,7 +469,7 @@
         c_size = rmodel.inputconst(lltype.Signed, info["fixedsize"])
         if not op.opname.endswith('_varsize'):
             #malloc_ptr = self.malloc_fixedsize_ptr
-            if 1 or op.opname.startswith('zero'):
+            if op.opname.startswith('zero'):
                 malloc_ptr = self.malloc_fixedsize_clear_ptr
             else:
                 malloc_ptr = self.malloc_fixedsize_ptr
@@ -488,14 +488,12 @@
         c_has_finalizer = rmodel.inputconst(
             lltype.Bool, bool(self.finalizer_funcptr_for_type(TYPE)))
         args.append(c_has_finalizer)
-        
+
         self.push_roots(hop)
         v_result = hop.genop("direct_call", [malloc_ptr] + args,
                              resulttype=llmemory.GCREF)
         self.pop_roots(hop)
         hop.cast_result(v_result)
-        if malloc_ptr == self.malloc_fixedsize_ptr:
-            gen_zero_gc_pointers(TYPE, op.result, hop.llops)
 
     gct_zero_malloc = gct_malloc
     gct_malloc_varsize = gct_malloc
@@ -541,6 +539,11 @@
                   resultvar=op.result)
         self.pop_roots(hop)
 
+    def gct_zero_gc_pointers_inside(self, hop):
+        v_ob = hop.spaceop.args[0]
+        TYPE = v_ob.concretetype.TO
+        gen_zero_gc_pointers(TYPE, v_ob, hop.llops)
+
     def push_alive_nopyobj(self, var, llops):
         pass
 



More information about the Pypy-commit mailing list