• Tim Peters's avatar
    changed(): the refcount on self wasn't incremented when self was placed · 9f68cbc7
    Tim Peters authored
    in a new tuple.  If the chain of stuff triggered by the
    subsequent PyEval_CallObject() happened to trigger cyclic gc, then there
    were more gc-visible pointers to self than could be accounted for by
    self->ob_refcnt, and in a debug build Python died with an assertion
    failure.
    
    The code has always been this way, but Jeremy points out that it didn't
    matter in previous versions of ZODB, because "self" was always an
    ExtensionClass instance before, and gc ignored those.
    9f68cbc7
cPersistence.c 18.8 KB