• Jason Rhinelander's avatar
    Destroy internals if created during Py_Finalize() · 4edb1ce2
    Jason Rhinelander authored
    Py_Finalize could potentially invoke code that calls `get_internals()`,
    which could create a new internals object if one didn't exist.
    `finalize_interpreter()` didn't catch this because it only used the
    pre-finalize interpreter pointer status; if this happens, it results in
    the internals pointer not being properly destroyed with the interpreter,
    which leaks, and also causes a `get_internals()` under a future
    interpreter to return an internals object that is wrong in various ways.
    4edb1ce2
test_interpreter.cpp 6.68 KB