[pypy-svn] r74918 - in pypy/branch/blackhole-improvement/pypy/jit: backend/x86/test codewriter

arigo at codespeak.net arigo at codespeak.net
Sun May 30 16:30:27 CEST 2010


Author: arigo
Date: Sun May 30 16:30:26 2010
New Revision: 74918

Modified:
   pypy/branch/blackhole-improvement/pypy/jit/backend/x86/test/test_gc_integration.py
   pypy/branch/blackhole-improvement/pypy/jit/codewriter/heaptracker.py
Log:
Fix again some tests.


Modified: pypy/branch/blackhole-improvement/pypy/jit/backend/x86/test/test_gc_integration.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/backend/x86/test/test_gc_integration.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/backend/x86/test/test_gc_integration.py	Sun May 30 16:30:26 2010
@@ -226,7 +226,9 @@
         self.nodedescr = nodedescr
         vtable = lltype.malloc(rclass.OBJECT_VTABLE, immortal=True)
         vtable_int = cpu.cast_adr_to_int(llmemory.cast_ptr_to_adr(vtable))
-        NODE2 = lltype.Struct('node2', ('tid', lltype.Signed),
+        NODE2 = lltype.GcStruct('node2',
+                                  ('parent', rclass.OBJECT),
+                                  ('tid', lltype.Signed),
                                   ('vtable', lltype.Ptr(rclass.OBJECT_VTABLE)))
         descrsize = cpu.sizeof(NODE2)
         heaptracker.register_known_gctype(cpu, vtable, NODE2)
@@ -283,4 +285,4 @@
         assert gc_ll_descr.nursery[0] == self.descrsize.tid
         assert gc_ll_descr.nursery[1] == self.vtable_int
         nurs_adr = rffi.cast(lltype.Signed, gc_ll_descr.nursery)
-        assert gc_ll_descr.addrs[0] == nurs_adr + 8
+        assert gc_ll_descr.addrs[0] == nurs_adr + 12

Modified: pypy/branch/blackhole-improvement/pypy/jit/codewriter/heaptracker.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/codewriter/heaptracker.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/codewriter/heaptracker.py	Sun May 30 16:30:26 2010
@@ -3,7 +3,8 @@
 
 
 def has_gcstruct_a_vtable(GCSTRUCT):
-    assert isinstance(GCSTRUCT, lltype.GcStruct)
+    if not isinstance(GCSTRUCT, lltype.GcStruct):
+        return False
     while not GCSTRUCT._hints.get('typeptr'):
         _, GCSTRUCT = GCSTRUCT._first_struct()
         if GCSTRUCT is None:
@@ -14,6 +15,7 @@
     # xxx hack: from a GcStruct representing an instance's
     # lowleveltype, return the corresponding vtable pointer.
     # Returns None if the GcStruct does not belong to an instance.
+    assert isinstance(GCSTRUCT, lltype.GcStruct)
     if not has_gcstruct_a_vtable(GCSTRUCT):
         return None
     setup_cache_gcstruct2vtable(cpu)



More information about the Pypy-commit mailing list