• Armin Rigo's avatar
    Fix for an obscure bug introduced by revs 46806 and 46808, with a test. · 53c1692f
    Armin Rigo yazdı
    The problem of checking too eagerly for recursive calls is the
    following: if a RuntimeError is caused by recursion, and if code needs
    to normalize it immediately (as in the 2nd test), then
    PyErr_NormalizeException() needs a call to the RuntimeError class to
    instantiate it, and this hits the recursion limit again...  causing
    PyErr_NormalizeException() to never finish.
    
    Moved this particular recursion check to slot_tp_call(), which is not
    involved in instantiating built-in exceptions.
    
    Backport candidate.
    53c1692f
test_exceptions.py 11.8 KB