[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