[pypy-svn] r76919 - pypy/branch/gc-module/pypy/rlib
arigo at codespeak.net
arigo at codespeak.net
Tue Sep 7 16:26:41 CEST 2010
Author: arigo
Date: Tue Sep 7 16:26:39 2010
New Revision: 76919
Modified:
pypy/branch/gc-module/pypy/rlib/rgc.py
Log:
Ignore the issue that we can get occasionally some strange objects,
that look like instances but whose typeptr is actually NULL.
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 16:26:39 2010
@@ -411,9 +411,10 @@
from pypy.rpython.lltypesystem import rclass
if _is_rpy_instance(gcref):
objptr = lltype.cast_opaque_ptr(base_ptr_lltype(), gcref)
- clsptr = _get_llcls_from_cls(Class)
- if rclass.ll_isinstance(objptr, clsptr):
- return cast_base_ptr_to_instance(Class, objptr)
+ if objptr.typeptr: # may be NULL, e.g. in rdict's dummykeyobj
+ clsptr = _get_llcls_from_cls(Class)
+ if rclass.ll_isinstance(objptr, clsptr):
+ return cast_base_ptr_to_instance(Class, objptr)
return None
else:
if isinstance(gcref._x, Class):
More information about the Pypy-commit
mailing list