Exemplo n.º 1
0
 def test_write_barrier_before_setinteriorfield_gc(self):
     S1 = lltype.GcStruct('S1')
     INTERIOR = lltype.GcArray(('z', lltype.Ptr(S1)))
     interiordescr = get_array_descr(self.gc_ll_descr, INTERIOR)
     interiordescr.tid = 1291
     interiorlendescr = interiordescr.lendescr
     interiorzdescr = get_interiorfield_descr(self.gc_ll_descr,
                                              INTERIOR, 'z')
     self.check_rewrite("""
         [p1, p2]
         setinteriorfield_gc(p1, 0, p2, descr=interiorzdescr)
         jump(p1, p2)
     """, """
         [p1, p2]
         cond_call_gc_wb_array(p1, 0, descr=wbdescr)
         setinteriorfield_gc(p1, 0, p2, descr=interiorzdescr)
         jump(p1, p2)
     """, interiorzdescr=interiorzdescr)
Exemplo n.º 2
0
 def test_write_barrier_before_setinteriorfield_gc(self):
     S1 = lltype.GcStruct('S1')
     INTERIOR = lltype.GcArray(('z', lltype.Ptr(S1)))
     interiordescr = get_array_descr(self.gc_ll_descr, INTERIOR)
     interiordescr.tid = 1291
     interiorlendescr = interiordescr.lendescr
     interiorzdescr = get_interiorfield_descr(self.gc_ll_descr, INTERIOR,
                                              'z')
     self.check_rewrite("""
         [p1, p2]
         setinteriorfield_gc(p1, 0, p2, descr=interiorzdescr)
         jump(p1, p2)
     """,
                        """
         [p1, p2]
         cond_call_gc_wb_array(p1, 0, descr=wbdescr)
         setinteriorfield_gc(p1, 0, p2, descr=interiorzdescr)
         jump(p1, p2)
     """,
                        interiorzdescr=interiorzdescr)
Exemplo n.º 3
0
Arquivo: llmodel.py Projeto: Mu-L/pypy
 def interiorfielddescrof(self, A, fieldname, arrayfieldname=None):
     return get_interiorfield_descr(self.gc_ll_descr, A, fieldname,
                                    arrayfieldname)
Exemplo n.º 4
0
 def interiorfielddescrof(self, A, fieldname, arrayfieldname=None):
     return get_interiorfield_descr(self.gc_ll_descr, A, fieldname,
                                    arrayfieldname)