[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