[pypy-commit] pypy gc_no_cleanup_nursery: missing case
fijal
noreply at buildbot.pypy.org
Thu Sep 25 12:33:10 CEST 2014
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: gc_no_cleanup_nursery
Changeset: r73700:0cb0f646d4d5
Date: 2014-09-25 12:32 +0200
http://bitbucket.org/pypy/pypy/changeset/0cb0f646d4d5/
Log: missing case
diff --git a/rpython/jit/codewriter/jtransform.py b/rpython/jit/codewriter/jtransform.py
--- a/rpython/jit/codewriter/jtransform.py
+++ b/rpython/jit/codewriter/jtransform.py
@@ -1668,7 +1668,13 @@
v = Variable('new_length')
v.concretetype = lltype.Signed
ops.append(SpaceOperation('int_force_ge_zero', [v_length], v))
- ops.append(SpaceOperation('new_array', [v, arraydescr], op.result))
+ ARRAY = op.result.concretetype.TO
+ if ((isinstance(ARRAY.OF, lltype.Ptr) and ARRAY.OF._needsgc()) or
+ isinstance(ARRAY.OF, lltype.Struct)):
+ opname = 'new_array_clear'
+ else:
+ opname = 'new_array'
+ ops.append(SpaceOperation(opname, [v, arraydescr], op.result))
return ops
def do_fixed_list_len(self, op, args, arraydescr):
More information about the pypy-commit
mailing list