summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Schemenauer <nascheme@enme.ucalgary.ca>2002-11-17 17:52:44 (GMT)
committerNeil Schemenauer <nascheme@enme.ucalgary.ca>2002-11-17 17:52:44 (GMT)
commit89350a41b969b1fb20d0e24db28a20491e448860 (patch)
tree15b08d87d1a2901b71e162e55bc174c6dd81500e
parent614181282024571bb152a1d3d0b75b32e43c9641 (diff)
downloadcpython-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.h1
-rw-r--r--Objects/object.c7
-rw-r--r--Python/pythonrun.c4
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