From 86c1a83b19abf38e642f92e854dcc700baae9ff8 Mon Sep 17 00:00:00 2001 From: dP Date: Sun, 9 Apr 2023 17:37:22 +0400 Subject: [PATCH] Avoid assert/crash when updating tile outside the viewport --- src/viewport.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/viewport.cpp b/src/viewport.cpp index a589c84822..250baeaac9 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -2048,9 +2048,9 @@ static bool MarkViewportDirty(Viewport *vp, int left, int top, int right, int bo uint w = (std::max(0, UnScaleByZoomLower(right, vp->zoom) - 1 - vp->dirty_block_left_margin) >> vp->GetDirtyBlockWidthShift()) + 1 - x; uint h = ((UnScaleByZoom(bottom, vp->zoom) - 1) >> vp->GetDirtyBlockHeightShift()) + 1 - y; - // TODO somehow not needed in jgrpp - assert(x < vp->dirty_blocks_per_row); - assert(y < vp->dirty_blocks_per_column); + // TODO somehow JGRPP avoids these checks + if (x >= vp->dirty_blocks_per_row) return false; + if (y >= vp->dirty_blocks_per_column) return false; h -= std::max((int)y + (int)h - (int)vp->dirty_blocks_per_column, 0); w -= std::max((int)x + (int)w - (int)vp->dirty_blocks_per_row, 0);