[pypy-svn] r26369 - pypy/dist/pypy/translator/c/test
cfbolz at codespeak.net
cfbolz at codespeak.net
Wed Apr 26 15:50:06 CEST 2006
Author: cfbolz
Date: Wed Apr 26 15:50:06 2006
New Revision: 26369
Modified:
pypy/dist/pypy/translator/c/test/test_newgc.py
Log:
make the test use the cast* implementations in objectmodel
Modified: pypy/dist/pypy/translator/c/test/test_newgc.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_newgc.py (original)
+++ pypy/dist/pypy/translator/c/test/test_newgc.py Wed Apr 26 15:50:06 2006
@@ -7,7 +7,7 @@
from pypy.translator.backendopt.stat import print_statistics
from pypy.translator.c import genc, gc
from pypy.rpython.lltypesystem import lltype
-
+from pypy.rpython.objectmodel import cast_address_to_object, cast_object_to_address
from pypy.rpython.memory.gctransform import GCTransformer
from pypy import conftest
@@ -185,50 +185,6 @@
res = fn(1)
assert res == 1
-from pypy.rpython.extregistry import ExtRegistryEntry
-from pypy.annotation import model as annmodel
-from pypy.rpython import raddress
-from pypy.rpython.lltypesystem.llmemory import NULL, fakeaddress
-import weakref
-
-def cast_object_to_address(obj):
- return fakeaddress(weakref.ref(obj))
-
-def cast_address_to_object(address, expected_result):
- wref = address.ref().get()
- if wref is None: # NULL address
- return None
- obj = wref()
- assert obj is not None
- assert isinstance(obj, expected_result)
- return obj
-
-class Entry(ExtRegistryEntry):
- _about_ = cast_object_to_address
-
- def compute_result_annotation(self, s_obj):
- return annmodel.SomeAddress()
-
- def specialize_call(self, hop):
- vlist = hop.inputargs(hop.args_r[0])
- return hop.genop('cast_ptr_to_adr', vlist,
- resulttype=hop.r_result.lowleveltype)
-
-class Entry(ExtRegistryEntry):
- _about_ = cast_address_to_object
-
- def compute_result_annotation(self, s_int, s_clspbc):
- assert len(s_clspbc.descriptions) == 1
- desc = s_clspbc.descriptions.keys()[0]
- cdef = desc.getuniqueclassdef()
- return annmodel.SomeInstance(cdef)
-
- def specialize_call(self, hop):
- assert isinstance(hop.args_r[0], raddress.AddressRepr)
- vlist = [hop.inputarg(raddress.address_repr, arg=0)]
- return hop.genop('cast_adr_to_ptr', vlist,
- resulttype = hop.r_result.lowleveltype)
-
class Weakrefable(object):
__lifeline__ = None
@@ -240,6 +196,7 @@
return cast_address_to_object(self.address, Weakrefable)
def invalidate(self):
+ from pypy.rpython.lltypesystem.llmemory import NULL
self.address = NULL
class WeakrefLifeline(object):
More information about the Pypy-commit
mailing list