From f66f2e522f65003963b587ccc0a9780aef26bf00 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Wed, 16 Apr 2025 13:02:28 +0100 Subject: [PATCH] Fix logic error in checking IsErrorLimitExceeded(). Fixes https://gitlab.com/kicad/code/kicad/-/issues/20671 --- pcbnew/drc/drc_test_provider_silk_clearance.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pcbnew/drc/drc_test_provider_silk_clearance.cpp b/pcbnew/drc/drc_test_provider_silk_clearance.cpp index 3dc65ca950..f5751a25c3 100644 --- a/pcbnew/drc/drc_test_provider_silk_clearance.cpp +++ b/pcbnew/drc/drc_test_provider_silk_clearance.cpp @@ -84,7 +84,7 @@ bool DRC_TEST_PROVIDER_SILK_CLEARANCE::Run() bool checkIndividualMaskItems = m_board->GetDesignSettings().m_SolderMaskMinWidth <= 0; if( m_drcEngine->IsErrorLimitExceeded( DRCE_OVERLAPPING_SILK ) - && ( m_drcEngine->IsErrorLimitExceeded( DRCE_SILK_MASK_CLEARANCE) || !checkIndividualMaskItems ) ) + && m_drcEngine->IsErrorLimitExceeded( DRCE_SILK_MASK_CLEARANCE) ) { return true; // continue with other tests } @@ -188,8 +188,8 @@ bool DRC_TEST_PROVIDER_SILK_CLEARANCE::Run() std::shared_ptr hole; - if( ( m_drcEngine->IsErrorLimitExceeded( DRCE_SILK_MASK_CLEARANCE) || !checkIndividualMaskItems ) - && m_drcEngine->IsErrorLimitExceeded( DRCE_OVERLAPPING_SILK ) ) + if( m_drcEngine->IsErrorLimitExceeded( DRCE_OVERLAPPING_SILK ) + && m_drcEngine->IsErrorLimitExceeded( DRCE_SILK_MASK_CLEARANCE ) ) { return false; } @@ -226,7 +226,7 @@ bool DRC_TEST_PROVIDER_SILK_CLEARANCE::Run() errorCode = DRCE_SILK_MASK_CLEARANCE; } - if( minClearance < 0 ) + if( minClearance < 0 || m_drcEngine->IsErrorLimitExceeded( errorCode ) ) return true; int actual;