8000 Backport PR #20645: Fix leak if affine_transform is passed invalid ve… · matplotlib/matplotlib@cce1048 · GitHub
[go: up one dir, main page]

Skip to content

Commit cce1048

Browse files
QuLogicmeeseeksmachine
authored andcommitted
Backport PR #20645: Fix leak if affine_transform is passed invalid vertices.
1 parent a518b74 commit cce1048

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/_path_wrapper.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -471,17 +471,19 @@ static PyObject *Py_affine_transform(PyObject *self, PyObject *args, PyObject *k
471471

472472
if (PyArray_NDIM(vertices_arr) == 2) {
473473
numpy::array_view<double, 2> vertices(vertices_arr);
474+
Py_DECREF(vertices_arr);
475+
474476
npy_intp dims[] = { (npy_intp)vertices.size(), 2 };
475477
numpy::array_view<double, 2> result(dims);
476478
CALL_CPP("affine_transform", (affine_transform_2d(vertices, trans, result)));
477-
Py_DECREF(vertices_arr);
478479
return result.pyobj();
479480
} else { // PyArray_NDIM(vertices_arr) == 1
480481
numpy::array_view<double, 1> vertices(vertices_arr);
482+
Py_DECREF(vertices_arr);
483+
481484
npy_intp dims[] = { (npy_intp)vertices.size() };
482485
numpy::array_view<double, 1> result(dims);
483486
CALL_CPP("affine_transform", (affine_transform_1d(vertices, trans, result)));
484-
Py_DECREF(vertices_arr);
485487
return result.pyobj();
486488
}
487489
}

0 commit comments

Comments
 (0)
0