Skip to content

Commit c48271a

Browse files
committed
Handle case where path count is zero
1 parent 1e09241 commit c48271a

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

Tests/test_imagepath.py

+1
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ def test_path_odd_number_of_coordinates():
9090
[
9191
([0, 1, 2, 3], (0.0, 1.0, 2.0, 3.0)),
9292
([3, 2, 1, 0], (1.0, 0.0, 3.0, 2.0)),
93+
(0, (0.0, 0.0, 0.0, 0.0)),
9394
(1, (0.0, 0.0, 0.0, 0.0)),
9495
],
9596
)

src/path.c

+19-14
Original file line numberDiff line numberDiff line change
@@ -327,21 +327,26 @@ path_getbbox(PyPathObject *self, PyObject *args) {
327327

328328
xy = self->xy;
329329

330-
x0 = x1 = xy[0];
331-
y0 = y1 = xy[1];
330+
if (self->count == 0) {
331+
x0 = x1 = 0;
332+
y0 = y1 = 0;
333+
} else {
334+
x0 = x1 = xy[0];
335+
y0 = y1 = xy[1];
332336

333-
for (i = 1; i < self->count; i++) {
334-
if (xy[i + i] < x0) {
335-
x0 = xy[i + i];
336-
}
337-
if (xy[i + i] > x1) {
338-
x1 = xy[i + i];
339-
}
340-
if (xy[i + i + 1] < y0) {
341-
y0 = xy[i + i + 1];
342-
}
343-
if (xy[i + i + 1] > y1) {
344-
y1 = xy[i + i + 1];
337+
for (i = 1; i < self->count; i++) {
338+
if (xy[i + i] < x0) {
339+
x0 = xy[i + i];
340+
}
341+
if (xy[i + i] > x1) {
342+
x1 = xy[i + i];
343+
}
344+
if (xy[i + i + 1] < y0) {
345+
y0 = xy[i + i + 1];
346+
}
347+
if (xy[i + i + 1] > y1) {
348+
y1 = xy[i + i + 1];
349+
}
345350
}
346351
}
347352

0 commit comments

Comments
 (0)