[pypy-commit] pypy default: Arrays of struct need a getlength() too.
arigo
noreply at buildbot.pypy.org
Sat May 11 13:44:32 CEST 2013
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r63975:5c4cc250d96c
Date: 2013-05-11 12:36 +0200
http://bitbucket.org/pypy/pypy/changeset/5c4cc250d96c/
Log: Arrays of struct need a getlength() too.
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -1005,6 +1005,19 @@
"""
self.optimize_loop(ops, expected)
+ def test_virtual_array_of_struct_len(self):
+ ops = """
+ []
+ p0 = new_array(2, descr=complexarraydescr)
+ i0 = arraylen_gc(p0)
+ finish(i0)
+ """
+ expected = """
+ []
+ finish(2)
+ """
+ self.optimize_loop(ops, expected)
+
def test_nonvirtual_1(self):
ops = """
[i]
diff --git a/rpython/jit/metainterp/optimizeopt/virtualize.py b/rpython/jit/metainterp/optimizeopt/virtualize.py
--- a/rpython/jit/metainterp/optimizeopt/virtualize.py
+++ b/rpython/jit/metainterp/optimizeopt/virtualize.py
@@ -332,6 +332,9 @@
self.arraydescr = arraydescr
self._items = [{} for _ in xrange(size)]
+ def getlength(self):
+ return len(self._items)
+
def getinteriorfield(self, index, ofs, default):
return self._items[index].get(ofs, default)
More information about the pypy-commit
mailing list