From 8f58c060fd6095e34ede2a2d1c14caea517636e7 Mon Sep 17 00:00:00 2001 From: Kirill Primak Date: Sun, 27 Nov 2022 13:34:48 +0300 Subject: [PATCH] util/region: forbid "shrinking" a region with wlr_region_expand() The logic isn't correct. --- include/wlr/util/region.h | 4 ++-- util/region.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/wlr/util/region.h b/include/wlr/util/region.h index c3f1cbe87..948307a18 100644 --- a/include/wlr/util/region.h +++ b/include/wlr/util/region.h @@ -39,8 +39,8 @@ void wlr_region_transform(pixman_region32_t *dst, const pixman_region32_t *src, enum wl_output_transform transform, int width, int height); /** - * Expands the region of `distance`. If `distance` is negative, it shrinks the - * region. + * Expands the region by distance on both axis. distance must be + * a non-negative number. */ void wlr_region_expand(pixman_region32_t *dst, const pixman_region32_t *src, int distance); diff --git a/util/region.c b/util/region.c index a3b13e061..b74c55e54 100644 --- a/util/region.c +++ b/util/region.c @@ -111,6 +111,8 @@ void wlr_region_transform(pixman_region32_t *dst, const pixman_region32_t *src, void wlr_region_expand(pixman_region32_t *dst, const pixman_region32_t *src, int distance) { + assert(distance >= 0); + if (distance == 0) { pixman_region32_copy(dst, src); return;