@@ -1546,6 +1546,7 @@ encoder_listencode_obj(PyEncoderObject *s, PyUnicodeWriter *writer,
15461546 rv = encoder_listencode_obj (s , writer , newobj , indent_level , indent_cache );
15471547 _Py_LeaveRecursiveCall ();
15481548
1549+ Py_DECREF (newobj );
15491550 if (rv ) {
15501551 _PyErr_FormatNote ("when serializing %T object" , obj );
15511552 Py_DECREF (newobj );
@@ -1555,7 +1556,6 @@ encoder_listencode_obj(PyEncoderObject *s, PyUnicodeWriter *writer,
15551556 if (s -> markers != Py_None ) {
15561557 Py_ReprLeave (obj );
15571558 }
1558- Py_DECREF (newobj );
15591559 return rv ;
15601560bail :
15611561 if (s -> markers != Py_None ) {
@@ -1707,6 +1707,9 @@ encoder_listencode_dict(PyEncoderObject *s, PyUnicodeWriter *writer,
17071707 }
17081708 }
17091709
1710+ if (s -> markers != Py_None ) {
1711+ Py_ReprLeave (dct );
1712+ }
17101713 if (s -> indent != Py_None && !first ) {
17111714 indent_level -- ;
17121715 if (write_newline_indent (writer , indent_level , indent_cache ) < 0 ) {
@@ -1717,16 +1720,13 @@ encoder_listencode_dict(PyEncoderObject *s, PyUnicodeWriter *writer,
17171720 if (PyUnicodeWriter_WriteChar (writer , '}' )) {
17181721 goto bail ;
17191722 }
1720- if (s -> markers != Py_None ) {
1721- Py_ReprLeave (dct );
1722- }
17231723 return 0 ;
17241724
17251725bail :
1726+ Py_XDECREF (items );
17261727 if (s -> markers != Py_None ) {
17271728 Py_ReprLeave (dct );
17281729 }
1729- Py_XDECREF (items );
17301730 return -1 ;
17311731}
17321732
@@ -1783,6 +1783,9 @@ encoder_listencode_list(PyEncoderObject *s, PyUnicodeWriter *writer,
17831783 }
17841784 }
17851785
1786+ if (s -> markers != Py_None ) {
1787+ Py_ReprLeave (seq );
1788+ }
17861789 if (s -> indent != Py_None ) {
17871790 indent_level -- ;
17881791 if (write_newline_indent (writer , indent_level , indent_cache ) < 0 ) {
@@ -1793,9 +1796,6 @@ encoder_listencode_list(PyEncoderObject *s, PyUnicodeWriter *writer,
17931796 if (PyUnicodeWriter_WriteChar (writer , ']' )) {
17941797 goto bail ;
17951798 }
1796- if (s -> markers != Py_None ) {
1797- Py_ReprLeave (seq );
1798- }
17991799 Py_DECREF (s_fast );
18001800 return 0 ;
18011801
0 commit comments