From 43be371f83cfcd2e2ffd4569a0016517a12ecf2c Mon Sep 17 00:00:00 2001 From: John Beard Date: Fri, 24 Jan 2025 16:43:36 +0800 Subject: [PATCH] Kimath: don't access aActual unless set Avoids at least one test failure in qa_pcbnew due to uninitialised access. --- libs/kimath/src/geometry/shape_collisions.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/kimath/src/geometry/shape_collisions.cpp b/libs/kimath/src/geometry/shape_collisions.cpp index 3309dabe54..2c8a3f0096 100644 --- a/libs/kimath/src/geometry/shape_collisions.cpp +++ b/libs/kimath/src/geometry/shape_collisions.cpp @@ -471,7 +471,7 @@ static inline bool Collide( const SHAPE_RECT& aA, const SHAPE_SEGMENT& aB, int a bool rv = aA.Collide( aB.GetSeg(), aClearance + aB.GetWidth() / 2, aActual, aLocation ); - if( aActual ) + if( rv && aActual ) *aActual = std::max( 0, *aActual - aB.GetWidth() / 2 ); return rv; @@ -487,7 +487,7 @@ static inline bool Collide( const SHAPE_SEGMENT& aA, const SHAPE_SEGMENT& aB, in bool rv = aA.Collide( aB.GetSeg(), aClearance + aB.GetWidth() / 2, aActual, aLocation ); - if( aActual ) + if( rv && aActual ) *aActual = std::max( 0, *aActual - aB.GetWidth() / 2 ); return rv; @@ -503,7 +503,7 @@ static inline bool Collide( const SHAPE_LINE_CHAIN_BASE& aA, const SHAPE_SEGMENT bool rv = aA.Collide( aB.GetSeg(), aClearance + aB.GetWidth() / 2, aActual, aLocation ); - if( aActual ) + if( rv && aActual ) *aActual = std::max( 0, *aActual - aB.GetWidth() / 2 ); return rv;