Example #1
0
    def setup_method(self, method):
        cpu = CPU(None, None)
        cpu.vtable_offset = 4
        cpu.gc_ll_descr = GCDescrFastpathMalloc()

        NODE = lltype.Struct('node', ('tid', lltype.Signed),
                                     ('value', lltype.Signed))
        nodedescr = cpu.sizeof(NODE)     # xxx hack: NODE is not a GcStruct
        valuedescr = cpu.fielddescrof(NODE, 'value')

        self.cpu = cpu
        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),
                                  ('vtable', lltype.Ptr(rclass.OBJECT_VTABLE)))
        descrsize = cpu.sizeof(NODE2)
        cpu.set_class_sizes({vtable_int: descrsize})
        self.descrsize = descrsize
        self.vtable_int = vtable_int

        self.namespace = locals().copy()
Example #2
0
    def setup_method(self, method):
        cpu = CPU(None, None)
        cpu.vtable_offset = 4
        cpu.gc_ll_descr = GCDescrFastpathMalloc()

        NODE = lltype.Struct('node', ('tid', lltype.Signed),
                             ('value', lltype.Signed))
        nodedescr = cpu.sizeof(NODE)  # xxx hack: NODE is not a GcStruct
        valuedescr = cpu.fielddescrof(NODE, 'value')

        self.cpu = cpu
        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),
                              ('vtable', lltype.Ptr(rclass.OBJECT_VTABLE)))
        descrsize = cpu.sizeof(NODE2)
        cpu.set_class_sizes({vtable_int: descrsize})
        self.descrsize = descrsize
        self.vtable_int = vtable_int

        self.namespace = locals().copy()