@@ -866,12 +866,13 @@ Compressor_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
866866static void
867867Compressor_dealloc(PyObject *op)
868868{
869+ PyTypeObject *tp = Py_TYPE(op);
870+ PyObject_GC_UnTrack(op);
869871 Compressor *self = Compressor_CAST(op);
870872 lzma_end(&self->lzs);
871873 if (self->lock != NULL) {
872874 PyThread_free_lock(self->lock);
873875 }
874- PyTypeObject *tp = Py_TYPE(self);
875876 tp->tp_free(self);
876877 Py_DECREF(tp);
877878}
@@ -933,7 +934,7 @@ static PyType_Spec lzma_compressor_type_spec = {
933934 // lzma_compressor_type_spec does not have Py_TPFLAGS_BASETYPE flag
934935 // which prevents to create a subclass.
935936 // So calling PyType_GetModuleState() in this file is always safe.
936- .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_IMMUTABLETYPE),
937+ .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_HAVE_GC ),
937938 .slots = lzma_compressor_type_slots,
938939};
939940
@@ -1314,6 +1315,8 @@ _lzma_LZMADecompressor_impl(PyTypeObject *type, int format,
13141315static void
13151316Decompressor_dealloc(PyObject *op)
13161317{
1318+ PyTypeObject *tp = Py_TYPE(op);
1319+ PyObject_GC_UnTrack(op);
13171320 Decompressor *self = Decompressor_CAST(op);
13181321 if(self->input_buffer != NULL)
13191322 PyMem_Free(self->input_buffer);
@@ -1323,7 +1326,6 @@ Decompressor_dealloc(PyObject *op)
13231326 if (self->lock != NULL) {
13241327 PyThread_free_lock(self->lock);
13251328 }
1326- PyTypeObject *tp = Py_TYPE(self);
13271329 tp->tp_free(self);
13281330 Py_DECREF(tp);
13291331}
@@ -1381,7 +1383,7 @@ static PyType_Spec lzma_decompressor_type_spec = {
13811383 // lzma_decompressor_type_spec does not have Py_TPFLAGS_BASETYPE flag
13821384 // which prevents to create a subclass.
13831385 // So calling PyType_GetModuleState() in this file is always safe.
1384- .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_IMMUTABLETYPE),
1386+ .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_HAVE_GC ),
13851387 .slots = lzma_decompressor_type_slots,
13861388};
13871389
0 commit comments