[pypy-svn] r66592 - pypy/branch/pyjitpl5-optimize4/pypy/jit/backend/test

arigo at codespeak.net arigo at codespeak.net
Fri Jul 24 16:12:25 CEST 2009


Author: arigo
Date: Fri Jul 24 16:12:25 2009
New Revision: 66592

Modified:
   pypy/branch/pyjitpl5-optimize4/pypy/jit/backend/test/test_ll_random.py
Log:
Fix for NEW_WITH_VTABLE not taking the descr any more.


Modified: pypy/branch/pyjitpl5-optimize4/pypy/jit/backend/test/test_ll_random.py
==============================================================================
--- pypy/branch/pyjitpl5-optimize4/pypy/jit/backend/test/test_ll_random.py	(original)
+++ pypy/branch/pyjitpl5-optimize4/pypy/jit/backend/test/test_ll_random.py	Fri Jul 24 16:12:25 2009
@@ -18,6 +18,7 @@
         self.runicodes = []
         self.structure_types = []
         self.structure_types_and_vtables = []
+        self.class_sizes_cache = []
 
     def get_structptr_var(self, r, must_have_vtable=False, type=lltype.Struct):
         while True:
@@ -97,6 +98,13 @@
             vtable.name[i] = name[i]
         vtable.name[len(name)] = '\x00'
         self.structure_types_and_vtables.append((S, vtable))
+        #
+        vtable_adr = llmemory.cast_ptr_to_adr(vtable)
+        vtable_int = self.cpu.cast_adr_to_int(vtable_adr)
+        descr = self.cpu.sizeof(S)
+        self.class_sizes_cache.append((vtable_int, descr))
+        self.cpu.set_class_sizes(dict(self.class_sizes_cache))
+        #
         return S, vtable
 
     def get_random_structure(self, r, has_vtable=False):
@@ -231,10 +239,12 @@
         if self.opnum == rop.NEW_WITH_VTABLE:
             S, vtable = builder.get_random_structure_type_and_vtable(r)
             args = [ConstAddr(llmemory.cast_ptr_to_adr(vtable), builder.cpu)]
+            descr = None
         else:
             S = builder.get_random_structure_type(r)
             args = []
-        v_ptr = builder.do(self.opnum, args, self.size_descr(builder, S))
+            descr = self.size_descr(builder, S)
+        v_ptr = builder.do(self.opnum, args, descr)
         builder.ptrvars.append((v_ptr, S))
 
 class ArrayOperation(test_random.AbstractOperation):



More information about the Pypy-commit mailing list