From c48271ab354db49cdbd740bc45e13be4f0f7993c Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 6 Dec 2021 22:25:14 +1100 Subject: [PATCH] Handle case where path count is zero Conflict:NA Reference:https://github.com/python-pillow/Pillow/pull/5920/commits/c48271ab354db49cdbd740bc45e13be4f0f7993c --- Tests/test_imagepath.py | 1 + src/path.c | 33 +++++++++++++++++++-------------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/Tests/test_imagepath.py b/Tests/test_imagepath.py index cd850bb..b18271c 100644 --- a/Tests/test_imagepath.py +++ b/Tests/test_imagepath.py @@ -90,6 +90,7 @@ def test_path_odd_number_of_coordinates(): [ ([0, 1, 2, 3], (0.0, 1.0, 2.0, 3.0)), ([3, 2, 1, 0], (1.0, 0.0, 3.0, 2.0)), + (0, (0.0, 0.0, 0.0, 0.0)), (1, (0.0, 0.0, 0.0, 0.0)), ], ) diff --git a/src/path.c b/src/path.c index 60def3f..a2637b6 100644 --- a/src/path.c +++ b/src/path.c @@ -338,21 +338,26 @@ path_getbbox(PyPathObject* self, PyObject* args) xy = self->xy; - x0 = x1 = xy[0]; - y0 = y1 = xy[1]; + if (self->count == 0) { + x0 = x1 = 0; + y0 = y1 = 0; + } else { + x0 = x1 = xy[0]; + y0 = y1 = xy[1]; - for (i = 1; i < self->count; i++) { - if (xy[i+i] < x0) { - x0 = xy[i+i]; - } - if (xy[i+i] > x1) { - x1 = xy[i+i]; - } - if (xy[i+i+1] < y0) { - y0 = xy[i+i+1]; - } - if (xy[i+i+1] > y1) { - y1 = xy[i+i+1]; + for (i = 1; i < self->count; i++) { + if (xy[i + i] < x0) { + x0 = xy[i + i]; + } + if (xy[i + i] > x1) { + x1 = xy[i + i]; + } + if (xy[i + i + 1] < y0) { + y0 = xy[i + i + 1]; + } + if (xy[i + i + 1] > y1) { + y1 = xy[i + i + 1]; + } } } -- 2.27.0