[pypy-svn] r15813 - in pypy/dist/pypy/rpython/memory: . test

cfbolz at codespeak.net cfbolz at codespeak.net
Tue Aug 9 14:32:30 CEST 2005


Author: cfbolz
Date: Tue Aug  9 14:32:29 2005
New Revision: 15813

Modified:
   pypy/dist/pypy/rpython/memory/convertlltype.py
   pypy/dist/pypy/rpython/memory/test/test_convertlltype.py
Log:
oops, all the test_llinterpsim tests (always run all tests :-(
) failed because I didn't adapt the size calculation.


Modified: pypy/dist/pypy/rpython/memory/convertlltype.py
==============================================================================
--- pypy/dist/pypy/rpython/memory/convertlltype.py	(original)
+++ pypy/dist/pypy/rpython/memory/convertlltype.py	Tue Aug  9 14:32:29 2005
@@ -160,6 +160,9 @@
                     candidates.append(item)
             elif isinstance(cand, lltype._struct):
                 seen[cand] = True
+                parent = cand._parentstructure()
+                if parent is not None:
+                    candidates.append(parent)
                 TYPE = cand._TYPE
                 if TYPE._arrayfld is not None:
                     total_size += get_total_size(

Modified: pypy/dist/pypy/rpython/memory/test/test_convertlltype.py
==============================================================================
--- pypy/dist/pypy/rpython/memory/test/test_convertlltype.py	(original)
+++ pypy/dist/pypy/rpython/memory/test/test_convertlltype.py	Tue Aug  9 14:32:29 2005
@@ -127,3 +127,10 @@
     s1 = cvter.convert(lls1)
     s2 = cast_pointer(lltype.Ptr(S2), s1)
     assert s2.v2 == 0
+
+def test_convertsubstructure_of_array():
+    cvter = LLTypeConverter(lladdress.raw_malloc(100))
+    S1 = lltype.Struct("s1", ("v1", lltype.Signed))
+    A = lltype.GcArray(S1)
+    lla = lltype.malloc(A, 3)
+    s1 = cvter.convert(lla[0])



More information about the Pypy-commit mailing list