• Victor Stinner's avatar
    bpo-36389: _PyObject_CheckConsistency() available in release mode (GH-16612) · 6876257e
    Victor Stinner authored
    bpo-36389, bpo-38376: The _PyObject_CheckConsistency() function is
    now also available in release mode. For example, it can be used to
    debug a crash in the visit_decref() function of the GC.
    
    Modify the following functions to also work in release mode:
    
    * _PyDict_CheckConsistency()
    * _PyObject_CheckConsistency()
    * _PyType_CheckConsistency()
    * _PyUnicode_CheckConsistency()
    
    Other changes:
    
    * _PyMem_IsPtrFreed(ptr) now also returns 1 if ptr is NULL
      (equals to 0).
    * _PyBytesWriter_CheckConsistency() now returns 1 and is only used
      with assert().
    * Reorder _PyObject_Dump() to write safe fields first, and only
      attempt to render repr() at the end.
    6876257e
test_capi.py 29.7 KB