Author: Maciej Fijalkowski <[email protected]>
Branch: gc_no_cleanup_nursery
Changeset: r73324:0026f4ea693a
Date: 2014-09-05 12:58 -0600
http://bitbucket.org/pypy/pypy/changeset/0026f4ea693a/
Log: fix some tests
diff --git a/rpython/jit/backend/llgraph/runner.py
b/rpython/jit/backend/llgraph/runner.py
--- a/rpython/jit/backend/llgraph/runner.py
+++ b/rpython/jit/backend/llgraph/runner.py
@@ -643,8 +643,19 @@
array = lltype.malloc(arraydescr.A, length)
return lltype.cast_opaque_ptr(llmemory.GCREF, array)
- def bh_clear_array_contents(self, array, arraydescr):
- pass # I think arrays are zero-initialized here anyhow
+ def bh_clear_array_contents(self, a, descr):
+ a = support.cast_arg(lltype.Ptr(descr.A), a)
+ ITEM = descr.A.OF
+ array = a._obj
+ if isinstance(ITEM, lltype.Struct):
+ for i in xrange(array.getlength()):
+ for name, FIELD in ITEM._flds.iteritems():
+ null = FIELD._defl()
+ setattr(array.getitem(i), name, null)
+ else:
+ null = ITEM._defl()
+ for i in xrange(array.getlength()):
+ array.setitem(i, null)
def bh_classof(self, struct):
struct = lltype.cast_opaque_ptr(rclass.OBJECTPTR, struct)
diff --git a/rpython/jit/backend/llsupport/llmodel.py
b/rpython/jit/backend/llsupport/llmodel.py
--- a/rpython/jit/backend/llsupport/llmodel.py
+++ b/rpython/jit/backend/llsupport/llmodel.py
@@ -596,7 +596,8 @@
arraysize = self.bh_arraylen_gc(ref, arraydescr)
totalsize = size * arraysize
adr = rffi.cast(lltype.Signed, ref) + ofs
- self.gc_ll_descr.memset_ptr(adr, 1, totalsize)
+ self.gc_ll_descr.memset_ptr(adr, rffi.cast(rffi.INT, 0),
+ rffi.cast(rffi.SIZE_T, totalsize))
def bh_new_with_vtable(self, vtable, sizedescr):
res = self.gc_ll_descr.gc_malloc(sizedescr)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit