Skip to content

Commit 66c1209

Browse files
committed
avoid incref on step argument
1 parent 569002d commit 66c1209

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

Objects/sliceobject.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ PyObject _Py_EllipsisObject = _PyObject_HEAD_INIT(&PyEllipsis_Type);
118118
*/
119119

120120
static PySliceObject *
121-
_PyBuildSlice_Consume2(PyObject *start, PyObject *stop, PyObject *step)
121+
_PyBuildSlice_Consume3(PyObject *start, PyObject *stop, PyObject *step)
122122
{
123123
assert(start != NULL && stop != NULL && step != NULL);
124124
PySliceObject *obj = _Py_FREELIST_POP(PySliceObject, slices);
@@ -131,13 +131,14 @@ _PyBuildSlice_Consume2(PyObject *start, PyObject *stop, PyObject *step)
131131

132132
obj->start = start;
133133
obj->stop = stop;
134-
obj->step = Py_NewRef(step);
134+
obj->step = step;
135135

136136
_PyObject_GC_TRACK(obj);
137137
return obj;
138138
error:
139139
Py_DECREF(start);
140140
Py_DECREF(stop);
141+
Py_DECREF(step);
141142
return NULL;
142143
}
143144

@@ -153,15 +154,15 @@ PySlice_New(PyObject *start, PyObject *stop, PyObject *step)
153154
if (stop == NULL) {
154155
stop = Py_None;
155156
}
156-
return (PyObject *)_PyBuildSlice_Consume2(Py_NewRef(start),
157-
Py_NewRef(stop), step);
157+
return (PyObject *)_PyBuildSlice_Consume3(Py_NewRef(start),
158+
Py_NewRef(stop), Py_NewRef(step));
158159
}
159160

160161
PyObject *
161162
_PyBuildSlice_ConsumeRefs(PyObject *start, PyObject *stop)
162163
{
163164
assert(start != NULL && stop != NULL);
164-
return (PyObject *)_PyBuildSlice_Consume2(start, stop, Py_None);
165+
return (PyObject *)_PyBuildSlice_Consume3(start, stop, Py_None);
165166
}
166167

167168
PyObject *

0 commit comments

Comments
 (0)