@@ -166,9 +166,6 @@ typedef struct {
166
166
167
167
/* codecs.encode, used for saving bytes in older protocols */
168
168
PyObject * codecs_encode ;
169
-
170
- /* As the name says, an empty tuple. */
171
- PyObject * empty_tuple ;
172
169
} PickleState ;
173
170
174
171
/* Forward declaration of the _pickle module definition. */
@@ -205,7 +202,6 @@ _Pickle_ClearState(PickleState *st)
205
202
Py_CLEAR (st -> name_mapping_3to2 );
206
203
Py_CLEAR (st -> import_mapping_3to2 );
207
204
Py_CLEAR (st -> codecs_encode );
208
- Py_CLEAR (st -> empty_tuple );
209
205
}
210
206
211
207
/* Initialize the given pickle module state. */
@@ -321,10 +317,6 @@ _Pickle_InitState(PickleState *st)
321
317
}
322
318
Py_CLEAR (codecs );
323
319
324
- st -> empty_tuple = PyTuple_New (0 );
325
- if (st -> empty_tuple == NULL )
326
- goto error ;
327
-
328
320
return 0 ;
329
321
330
322
error :
@@ -1137,8 +1129,9 @@ _Unpickler_ReadFromFile(UnpicklerObject *self, Py_ssize_t n)
1137
1129
return -1 ;
1138
1130
1139
1131
if (n == READ_WHOLE_LINE ) {
1140
- PickleState * st = _Pickle_GetGlobalState ();
1141
- data = PyObject_Call (self -> readline , st -> empty_tuple , NULL );
1132
+ PyObject * empty_tuple = PyTuple_New (0 );
1133
+ data = PyObject_Call (self -> readline , empty_tuple , NULL );
1134
+ Py_DECREF (empty_tuple );
1142
1135
}
1143
1136
else {
1144
1137
PyObject * len = PyLong_FromSsize_t (n );
@@ -3774,8 +3767,10 @@ save(PicklerObject *self, PyObject *obj, int pers_save)
3774
3767
/* Check for a __reduce__ method. */
3775
3768
reduce_func = _PyObject_GetAttrId (obj , & PyId___reduce__ );
3776
3769
if (reduce_func != NULL ) {
3777
- reduce_value = PyObject_Call (reduce_func , st -> empty_tuple ,
3770
+ PyObject * empty_tuple = PyTuple_New (0 );
3771
+ reduce_value = PyObject_Call (reduce_func , empty_tuple ,
3778
3772
NULL );
3773
+ Py_DECREF (empty_tuple );
3779
3774
}
3780
3775
else {
3781
3776
PyErr_Format (st -> PicklingError ,
@@ -7412,7 +7407,6 @@ pickle_traverse(PyObject *m, visitproc visit, void *arg)
7412
7407
Py_VISIT (st -> name_mapping_3to2 );
7413
7408
Py_VISIT (st -> import_mapping_3to2 );
7414
7409
Py_VISIT (st -> codecs_encode );
7415
- Py_VISIT (st -> empty_tuple );
7416
7410
return 0 ;
7417
7411
}
7418
7412
0 commit comments