[pypy-commit] pypy virtual-raw-mallocs: tweak the test to make it failing because of raw virtuals, and fix the code

antocuni noreply at buildbot.pypy.org
Sat Dec 29 21:11:37 CET 2012


Author: Antonio Cuni <anto.cuni at gmail.com>
Branch: virtual-raw-mallocs
Changeset: r59625:b9ed4709a910
Date: 2012-12-29 21:08 +0100
http://bitbucket.org/pypy/pypy/changeset/b9ed4709a910/

Log:	tweak the test to make it failing because of raw virtuals, and fix
	the code

diff --git a/pypy/jit/metainterp/resume.py b/pypy/jit/metainterp/resume.py
--- a/pypy/jit/metainterp/resume.py
+++ b/pypy/jit/metainterp/resume.py
@@ -763,7 +763,7 @@
                         self.getvirtual_int(i)
                     else:
                         assert False
-        return self.virtuals_cache
+        return self.virtuals_cache, self.virtuals_int_cache
 
     def _prepare_virtuals(self, virtuals):
         if virtuals:
@@ -1142,7 +1142,7 @@
             # special case for resuming after a GUARD_NOT_FORCED: we already
             # have the virtuals
             self.resume_after_guard_not_forced = 2
-            self.virtuals_cache = all_virtuals
+            self.virtuals_cache, self.virtuals_int_cache = all_virtuals
             # self.rd_virtuals can remain None, because virtuals_cache is
             # already filled
 
diff --git a/pypy/jit/metainterp/test/test_virtualref.py b/pypy/jit/metainterp/test/test_virtualref.py
--- a/pypy/jit/metainterp/test/test_virtualref.py
+++ b/pypy/jit/metainterp/test/test_virtualref.py
@@ -307,6 +307,8 @@
                 xy.next1 = lltype.malloc(A, 0)
                 xy.next2 = lltype.malloc(A, 0)
                 xy.next3 = lltype.malloc(A, 0)
+                buf = lltype.malloc(rffi.CCHARP.TO, 1, flavor='raw')
+                buf[0] = chr(n)
                 # this is a raw virtual
                 xy.next4 = lltype.malloc(rffi.CCHARP.TO, 1, flavor='raw')
                 xy.n = n
@@ -319,6 +321,7 @@
                 xy.next4 = lltype.nullptr(rffi.CCHARP.TO)
                 virtual_ref_finish(vref, xy)
                 exctx.topframeref = vref_None
+                lltype.free(buf, flavor='raw')
             return exctx.m
         #
         res = self.meta_interp(f, [30])


More information about the pypy-commit mailing list