From 339661229dd65161ec904fdc73390316a095bd46 Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Tue, 10 Feb 2026 14:59:21 +0000 Subject: [PATCH] desktop/reserved: fix a possible reserved crash (#13207) --- src/desktop/reserved/ReservedArea.cpp | 3 ++- tests/desktop/Reserved.cpp | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/desktop/reserved/ReservedArea.cpp b/src/desktop/reserved/ReservedArea.cpp index 07e83a82..8b4956dd 100644 --- a/src/desktop/reserved/ReservedArea.cpp +++ b/src/desktop/reserved/ReservedArea.cpp @@ -16,7 +16,8 @@ CReservedArea::CReservedArea(double top, double right, double bottom, double lef } CReservedArea::CReservedArea(const CBox& parent, const CBox& child) { - ASSERT(!parent.empty() && !child.empty()); + if (parent.empty() || child.empty()) + return; // empty reserved area ASSERT(parent.containsPoint(child.pos() + Vector2D{0.0001, 0.0001})); ASSERT(parent.containsPoint(child.pos() + child.size() - Vector2D{0.0001, 0.0001})); diff --git a/tests/desktop/Reserved.cpp b/tests/desktop/Reserved.cpp index 8fbb7172..b3942e32 100644 --- a/tests/desktop/Reserved.cpp +++ b/tests/desktop/Reserved.cpp @@ -35,4 +35,18 @@ TEST(Desktop, reservedArea) { EXPECT_EQ(b.top(), 30 - 10); EXPECT_EQ(b.right(), 1010 - 920); EXPECT_EQ(b.bottom(), 1010 - 930); + + Desktop::CReservedArea c{CBox{}, CBox{20, 30, 900, 900}}; + + EXPECT_EQ(c.left(), 0); + EXPECT_EQ(c.top(), 0); + EXPECT_EQ(c.right(), 0); + EXPECT_EQ(c.bottom(), 0); + + Desktop::CReservedArea d{CBox{20, 30, 900, 900}, CBox{}}; + + EXPECT_EQ(d.left(), 0); + EXPECT_EQ(d.top(), 0); + EXPECT_EQ(d.right(), 0); + EXPECT_EQ(d.bottom(), 0); } \ No newline at end of file