bpo-31095: fix potential crash during GC (GH-2974)

This commit is contained in:
INADA Naoki 2017-08-24 14:55:17 +09:00 committed by GitHub
parent bf9075a0c5
commit a6296d34a4
14 changed files with 60 additions and 13 deletions

View file

@ -655,7 +655,8 @@ py_encode_basestring(PyObject* self UNUSED, PyObject *pystr)
static void
scanner_dealloc(PyObject *self)
{
/* Deallocate scanner object */
/* bpo-31095: UnTrack is needed before calling any callbacks */
PyObject_GC_UnTrack(self);
scanner_clear(self);
Py_TYPE(self)->tp_free(self);
}
@ -1778,7 +1779,8 @@ bail:
static void
encoder_dealloc(PyObject *self)
{
/* Deallocate Encoder */
/* bpo-31095: UnTrack is needed before calling any callbacks */
PyObject_GC_UnTrack(self);
encoder_clear(self);
Py_TYPE(self)->tp_free(self);
}