Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r66212:452ef15ded28 Date: 2013-08-19 16:41 +0200 http://bitbucket.org/pypy/pypy/changeset/452ef15ded28/
Log: test_cast_gcref_to_int: when running untranslated, accept also _llgcopaque objects and force a cast to integer. diff --git a/rpython/rlib/rgc.py b/rpython/rlib/rgc.py --- a/rpython/rlib/rgc.py +++ b/rpython/rlib/rgc.py @@ -346,6 +346,10 @@ if we_are_translated(): return lltype.cast_ptr_to_int(gcref) else: + from rpython.rtyper.lltypesystem.ll2ctypes import _llgcopaque + if isinstance(gcref._obj, _llgcopaque): + from rpython.rtyper.lltypesystem import rffi + return rffi.cast(lltype.Signed, gcref) return id(gcref._x) def dump_rpy_heap(fd): diff --git a/rpython/rlib/test/test_rgc.py b/rpython/rlib/test/test_rgc.py --- a/rpython/rlib/test/test_rgc.py +++ b/rpython/rlib/test/test_rgc.py @@ -228,3 +228,8 @@ x1 = X() n = rgc.get_rpy_memory_usage(rgc.cast_instance_to_gcref(x1)) assert n >= 8 and n <= 64 + +def test_cast_gcref_to_int(): + from rpython.rtyper.lltypesystem import rffi + x = rffi.cast(llmemory.GCREF, 123456) + assert rgc.cast_gcref_to_int(x) == 123456 _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit