[pypy-svn] r76910 - in pypy/branch/gc-module/pypy: rlib rpython/memory/gc rpython/memory/gctransform translator/c/test

arigo at codespeak.net arigo at codespeak.net
Tue Sep 7 11:33:13 CEST 2010


Author: arigo
Date: Tue Sep  7 11:33:11 2010
New Revision: 76910

Modified:
   pypy/branch/gc-module/pypy/rlib/rgc.py
   pypy/branch/gc-module/pypy/rpython/memory/gc/base.py
   pypy/branch/gc-module/pypy/rpython/memory/gctransform/framework.py
   pypy/branch/gc-module/pypy/translator/c/test/test_newgc.py
Log:
Change rgc.get_rpy_typeid() into rgc.get_rpy_type_index(),
which returns the "member index" in the gctypelayout table.
More useful for accessing typeids.txt.


Modified: pypy/branch/gc-module/pypy/rlib/rgc.py
==============================================================================
--- pypy/branch/gc-module/pypy/rlib/rgc.py	(original)
+++ pypy/branch/gc-module/pypy/rlib/rgc.py	Tue Sep  7 11:33:11 2010
@@ -356,7 +356,7 @@
         size += Class.__itemsize__ * len(gcref._x)
     return size
 
-def get_rpy_typeid(gcref):
+def get_rpy_type_index(gcref):
     "NOT_RPYTHON"
     from pypy.rlib.rarithmetic import intmask
     Class = gcref._x.__class__
@@ -464,13 +464,13 @@
                          resulttype = hop.r_result)
 
 class Entry(ExtRegistryEntry):
-    _about_ = get_rpy_typeid
+    _about_ = get_rpy_type_index
     def compute_result_annotation(self, s_gcref):
         from pypy.annotation import model as annmodel
         return annmodel.SomeInteger()
     def specialize_call(self, hop):
         vlist = hop.inputargs(hop.args_r[0])
-        return hop.genop('gc_get_rpy_typeid', vlist,
+        return hop.genop('gc_get_rpy_type_index', vlist,
                          resulttype = hop.r_result)
 
 def _is_rpy_instance(gcref):

Modified: pypy/branch/gc-module/pypy/rpython/memory/gc/base.py
==============================================================================
--- pypy/branch/gc-module/pypy/rpython/memory/gc/base.py	(original)
+++ pypy/branch/gc-module/pypy/rpython/memory/gc/base.py	Tue Sep  7 11:33:11 2010
@@ -341,10 +341,10 @@
         # overridden in semispace.py and markcompact.py to also count the hash
         return self.get_size(llmemory.cast_ptr_to_adr(gcref))
 
-    def get_rpy_typeid(self, gcref):
+    def get_rpy_type_index(self, gcref):
         from pypy.rlib.rarithmetic import intmask
         typeid = self.get_type_id(llmemory.cast_ptr_to_adr(gcref))
-        return intmask(typeid)
+        return self.get_member_index(typeid)
 
     def is_rpy_instance(self, gcref):
         typeid = self.get_type_id(llmemory.cast_ptr_to_adr(gcref))

Modified: pypy/branch/gc-module/pypy/rpython/memory/gctransform/framework.py
==============================================================================
--- pypy/branch/gc-module/pypy/rpython/memory/gctransform/framework.py	(original)
+++ pypy/branch/gc-module/pypy/rpython/memory/gctransform/framework.py	Tue Sep  7 11:33:11 2010
@@ -401,10 +401,10 @@
                                           [s_gc, s_gcref],
                                           annmodel.SomeInteger(),
                                           minimal_transform=False)
-        self.get_rpy_typeid_ptr = getfn(GCClass.get_rpy_typeid.im_func,
-                                        [s_gc, s_gcref],
-                                        annmodel.SomeInteger(),
-                                        minimal_transform=False)
+        self.get_rpy_type_index_ptr = getfn(GCClass.get_rpy_type_index.im_func,
+                                            [s_gc, s_gcref],
+                                            annmodel.SomeInteger(),
+                                            minimal_transform=False)
         self.is_rpy_instance_ptr = getfn(GCClass.is_rpy_instance.im_func,
                                          [s_gc, s_gcref],
                                          annmodel.SomeBool(),
@@ -928,11 +928,11 @@
                   resultvar=hop.spaceop.result)
         self.pop_roots(hop, livevars)
 
-    def gct_gc_get_rpy_typeid(self, hop):
+    def gct_gc_get_rpy_type_index(self, hop):
         livevars = self.push_roots(hop)
         [v_ptr] = hop.spaceop.args
         hop.genop("direct_call",
-                  [self.get_rpy_typeid_ptr, self.c_const_gc, v_ptr],
+                  [self.get_rpy_type_index_ptr, self.c_const_gc, v_ptr],
                   resultvar=hop.spaceop.result)
         self.pop_roots(hop, livevars)
 

Modified: pypy/branch/gc-module/pypy/translator/c/test/test_newgc.py
==============================================================================
--- pypy/branch/gc-module/pypy/translator/c/test/test_newgc.py	(original)
+++ pypy/branch/gc-module/pypy/translator/c/test/test_newgc.py	Tue Sep  7 11:33:11 2010
@@ -1034,7 +1034,7 @@
     def test_get_rpy_memory_usage(self):
         self.run("get_rpy_memory_usage")
 
-    def define_get_rpy_typeid(self):
+    def define_get_rpy_type_index(self):
         U = lltype.GcStruct('U', ('x', lltype.Signed))
         S = lltype.GcStruct('S', ('u', lltype.Ptr(U)))
         A = lltype.GcArray(lltype.Ptr(S))
@@ -1045,13 +1045,13 @@
             a = lltype.malloc(A, 1000)
             s2 = lltype.malloc(S)
             gcref1 = lltype.cast_opaque_ptr(llmemory.GCREF, s)
-            int1 = rgc.get_rpy_typeid(gcref1)
+            int1 = rgc.get_rpy_type_index(gcref1)
             gcref2 = lltype.cast_opaque_ptr(llmemory.GCREF, s.u)
-            int2 = rgc.get_rpy_typeid(gcref2)
+            int2 = rgc.get_rpy_type_index(gcref2)
             gcref3 = lltype.cast_opaque_ptr(llmemory.GCREF, a)
-            int3 = rgc.get_rpy_typeid(gcref3)
+            int3 = rgc.get_rpy_type_index(gcref3)
             gcref4 = lltype.cast_opaque_ptr(llmemory.GCREF, s2)
-            int4 = rgc.get_rpy_typeid(gcref4)
+            int4 = rgc.get_rpy_type_index(gcref4)
             assert int1 != int2
             assert int1 != int3
             assert int2 != int3
@@ -1060,8 +1060,8 @@
 
         return fn
 
-    def test_get_rpy_typeid(self):
-        self.run("get_rpy_typeid")
+    def test_get_rpy_type_index(self):
+        self.run("get_rpy_type_index")
 
 
 class TestSemiSpaceGC(TestUsingFramework, snippet.SemiSpaceGCTestDefines):



More information about the Pypy-commit mailing list