[pypy-svn] r37539 - pypy/dist/pypy/jit/timeshifter

arigo at codespeak.net arigo at codespeak.net
Mon Jan 29 14:33:55 CET 2007


Author: arigo
Date: Mon Jan 29 14:33:54 2007
New Revision: 37539

Modified:
   pypy/dist/pypy/jit/timeshifter/rcontainer.py
Log:
These fields can be plain function objects instead of low-level fnptrs.
They are only called by other RPython code.


Modified: pypy/dist/pypy/jit/timeshifter/rcontainer.py
==============================================================================
--- pypy/dist/pypy/jit/timeshifter/rcontainer.py	(original)
+++ pypy/dist/pypy/jit/timeshifter/rcontainer.py	Mon Jan 29 14:33:54 2007
@@ -193,7 +193,7 @@
                     gv_access
                     touch_update
                     gv_access_is_null_ptr access_is_null_token
-                    get_rti_ptr set_rti_ptr
+                    get_rti set_rti
                  """.split()
 
     def __init__(self, hrtyper, TYPE):
@@ -308,7 +308,6 @@
 
     def _define_getset_rti_ptrs(self, hrtyper):
         RGenOp = hrtyper.RGenOp
-        annhelper = hrtyper.annhelper
         TOPPTR = self.access_desc.PTRTYPE
         
         def get_rti(base, frameinfo, frameindex):
@@ -319,19 +318,8 @@
             struc = RGenOp.read_frame_var(TOPPTR, base, frameinfo, frameindex)
             struc.vable_rti = new_vable_rti
 
-        s_addr = annmodel.SomeAddress()
-        s_frameinfo = annmodel.lltype_to_annotation(llmemory.GCREF)
-        s_frameindex = annmodel.SomeInteger()
-        from pypy.rpython.lltypesystem.rvirtualizable import VABLERTIPTR
-        s_vable_rti = annmodel.lltype_to_annotation(VABLERTIPTR)
-
-        self.get_rti_ptr = annhelper.delayedfunction(get_rti,
-                                [s_addr, s_frameinfo, s_frameindex],
-                                s_vable_rti, needtype=True)
-        self.set_rti_ptr = annhelper.delayedfunction(set_rti,
-                                [s_addr, s_frameinfo, s_frameindex,
-                                 s_vable_rti],
-                                annmodel.s_None, needtype=True)
+        self.get_rti = get_rti
+        self.set_rti = set_rti
 
     def _define_access_is_null(self, hrtyper):
         RGenOp = hrtyper.RGenOp
@@ -713,8 +701,8 @@
         vars_gv = memo.framevars_gv
         vars_gv.append(gv_outside)
         getset_rti = (memo.frameindex,
-                      typedesc.get_rti_ptr,
-                      typedesc.set_rti_ptr)
+                      typedesc.get_rti,
+                      typedesc.set_rti)
         memo.vable_getset_rtis.append(getset_rti)
         memo.frameindex += 1
         varindexes = vable_rti.varindexes



More information about the Pypy-commit mailing list