[pypy-commit] pypy quad-color-gc: Fix some broken testcases due to wrong typeids for immortal objects

ntruessel pypy.commits at gmail.com
Fri Sep 2 15:22:11 EDT 2016


Author: Nicolas Truessel <ntruessel at njsm.de>
Branch: quad-color-gc
Changeset: r86848:a6ec7b4fb726
Date: 2016-09-02 21:21 +0200
http://bitbucket.org/pypy/pypy/changeset/a6ec7b4fb726/

Log:	Fix some broken testcases due to wrong typeids for immortal objects

diff --git a/rpython/memory/gc/qcgc.py b/rpython/memory/gc/qcgc.py
--- a/rpython/memory/gc/qcgc.py
+++ b/rpython/memory/gc/qcgc.py
@@ -26,11 +26,10 @@
             ('hdr', rffi.COpaque('object_t', hints={"is_qcgc_header": True})),
             ('tid', lltype.Signed),
             ('hash', lltype.Signed))
-    #HDR = rffi.COpaque('object_t')
 
     def init_gc_object(self, addr, typeid):
         hdr = llmemory.cast_adr_to_ptr(addr, lltype.Ptr(self.HDR))
-        hdr.tid = rffi.cast(lltype.Signed, typeid)
+        hdr.tid = llop.combine_ushort(lltype.Signed, typeid, 0)
         hdr.hash = rffi.cast(lltype.Signed, 0)
 
     def malloc_fixedsize_clear(self, typeid, size,
@@ -63,7 +62,7 @@
     def init_gc_object_immortal(self, addr, typeid, flags=0):
         assert flags == 0
         #
-        self.init_gc_object(addr, typeid.index)
+        self.init_gc_object(addr, typeid)
 
     def collect(self, gen=1):
         """Do a minor (gen=0) or major (gen>0) collection."""


More information about the pypy-commit mailing list