Skip to content

Commit 2fcad2a

Browse files
miss-islingtonsergey-miryanovpicnixz
authored
[3.13] gh-130179: Fix persistent_{id,load}_attr reference leaks in _pickle (GH-130180) (#130190)
gh-130179: Fix `persistent_{id,load}_attr` reference leaks in `_pickle` (GH-130180) (cherry picked from commit e7f00cd) Co-authored-by: Sergey Miryanov <sergey.miryanov@gmail.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
1 parent ff92f6b commit 2fcad2a

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

Modules/_pickle.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4652,6 +4652,7 @@ Pickler_clear(PicklerObject *self)
46524652
Py_CLEAR(self->output_buffer);
46534653
Py_CLEAR(self->write);
46544654
Py_CLEAR(self->persistent_id);
4655+
Py_CLEAR(self->persistent_id_attr);
46554656
Py_CLEAR(self->dispatch_table);
46564657
Py_CLEAR(self->fast_memo);
46574658
Py_CLEAR(self->reducer_override);
@@ -4681,6 +4682,7 @@ Pickler_traverse(PicklerObject *self, visitproc visit, void *arg)
46814682
Py_VISIT(Py_TYPE(self));
46824683
Py_VISIT(self->write);
46834684
Py_VISIT(self->persistent_id);
4685+
Py_VISIT(self->persistent_id_attr);
46844686
Py_VISIT(self->dispatch_table);
46854687
Py_VISIT(self->fast_memo);
46864688
Py_VISIT(self->reducer_override);
@@ -7138,6 +7140,7 @@ Unpickler_clear(UnpicklerObject *self)
71387140
Py_CLEAR(self->peek);
71397141
Py_CLEAR(self->stack);
71407142
Py_CLEAR(self->persistent_load);
7143+
Py_CLEAR(self->persistent_load_attr);
71417144
Py_CLEAR(self->buffers);
71427145
if (self->buffer.buf != NULL) {
71437146
PyBuffer_Release(&self->buffer);
@@ -7177,6 +7180,7 @@ Unpickler_traverse(UnpicklerObject *self, visitproc visit, void *arg)
71777180
Py_VISIT(self->peek);
71787181
Py_VISIT(self->stack);
71797182
Py_VISIT(self->persistent_load);
7183+
Py_VISIT(self->persistent_load_attr);
71807184
Py_VISIT(self->buffers);
71817185
PyObject **memo = self->memo;
71827186
if (memo) {

0 commit comments

Comments
 (0)