diff options
author | Neil Schemenauer <nascheme@enme.ucalgary.ca> | 2002-11-17 17:52:44 (GMT) |
---|---|---|
committer | Neil Schemenauer <nascheme@enme.ucalgary.ca> | 2002-11-17 17:52:44 (GMT) |
commit | 89350a41b969b1fb20d0e24db28a20491e448860 (patch) | |
tree | 15b08d87d1a2901b71e162e55bc174c6dd81500e | |
parent | 614181282024571bb152a1d3d0b75b32e43c9641 (diff) | |
download | cpython-89350a41b969b1fb20d0e24db28a20491e448860.zip cpython-89350a41b969b1fb20d0e24db28a20491e448860.tar.gz cpython-89350a41b969b1fb20d0e24db28a20491e448860.tar.bz2 |
Remove _Py_ResetReferences. Fixes bug #529750 "Circular reference makes
Py_Init crash". refchain cannot be cleared because objects can live across
Py_Finalize() and Py_Initialize() if they are kept alive by circular
references.
-rw-r--r-- | Include/object.h | 1 | ||||
-rw-r--r-- | Objects/object.c | 7 | ||||
-rw-r--r-- | Python/pythonrun.c | 4 |
3 files changed, 0 insertions, 12 deletions
diff --git a/Include/object.h b/Include/object.h index d045be1..5e509b4 100644 --- a/Include/object.h +++ b/Include/object.h @@ -559,7 +559,6 @@ PyAPI_FUNC(void) _Py_NewReference(PyObject *); PyAPI_FUNC(void) _Py_ForgetReference(PyObject *); PyAPI_FUNC(void) _Py_Dealloc(PyObject *); PyAPI_FUNC(void) _Py_PrintReferences(FILE *); -PyAPI_FUNC(void) _Py_ResetReferences(void); #else /* Without Py_TRACE_REFS, there's little enough to do that we expand code diff --git a/Objects/object.c b/Objects/object.c index 20a6a93..3328643 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1909,13 +1909,6 @@ _Py_ReadyTypes(void) static PyObject refchain = {&refchain, &refchain}; void -_Py_ResetReferences(void) -{ - refchain._ob_prev = refchain._ob_next = &refchain; - _Py_RefTotal = 0; -} - -void _Py_NewReference(PyObject *op) { _Py_INC_REFTOTAL; diff --git a/Python/pythonrun.c b/Python/pythonrun.c index b85c390..c2508fa 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -277,10 +277,6 @@ Py_Finalize(void) #endif call_ll_exitfuncs(); - -#ifdef Py_TRACE_REFS - _Py_ResetReferences(); -#endif /* Py_TRACE_REFS */ } /* Create and initialize a new interpreter and thread, and return the |