From 2b2eb2e524ea2d4e73a9709c3293dacfeba01c29 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Wed, 22 Jan 2025 00:24:57 +0100 Subject: [PATCH] Fixed issue #1976 (crash on cross mode, lw > 1 and oversampling) --- src/laybasic/laybasic/layLayoutViewBase.cc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/laybasic/laybasic/layLayoutViewBase.cc b/src/laybasic/laybasic/layLayoutViewBase.cc index dc9b018f3..38fa9ab69 100644 --- a/src/laybasic/laybasic/layLayoutViewBase.cc +++ b/src/laybasic/laybasic/layLayoutViewBase.cc @@ -1745,13 +1745,21 @@ LayoutViewBase::icon_for_layer (const LayerPropertiesConstIterator &iter, unsign frame.fill (i, w - 1 - p0, w - p0); frame.fill (i, w - 1 - (wp - p1), w - (wp - p1)); - frame.fill (i, w - 1 - p0x, w - p0x); - frame.fill (i, w - 1 - (wp - p1x), w - (wp - p1x)); + if ((unsigned int) p0x < w) { + frame.fill (i, w - 1 - p0x, w - p0x); + } + if ((unsigned int) (wp - p1x) < w) { + frame.fill (i, w - 1 - (wp - p1x), w - (wp - p1x)); + } while (d < ddx) { d += ddy; - frame.fill (i, w - 1 - p0x, w - p0x); - frame.fill (i, w - 1 - (wp - p1x), w - (wp - p1x)); + if ((unsigned int) p0x < w) { + frame.fill (i, w - 1 - p0x, w - p0x); + } + if ((unsigned int) (wp - p1x) < w) { + frame.fill (i, w - 1 - (wp - p1x), w - (wp - p1x)); + } ++p0x; ++p1x; }