From efcb76874e75c267e0b88163897d51996a9e0974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Wed, 16 Jul 2025 21:51:58 +0200 Subject: [PATCH] Store only lineinfo if m_lastAssertionInfo is going to be reset `RunContext::resetAssertionInfo` overwrites everything in `m_lastAssertionInfo` except for the lineInfo, so if the reset is called at the end of a copying function, we can save work by copying only the lineInfo. --- src/catch2/internal/catch_run_context.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/catch2/internal/catch_run_context.cpp b/src/catch2/internal/catch_run_context.cpp index 7025b768..0beeedaa 100644 --- a/src/catch2/internal/catch_run_context.cpp +++ b/src/catch2/internal/catch_run_context.cpp @@ -331,7 +331,7 @@ namespace Catch { m_activeSections.push_back(§ionTracker); SectionInfo sectionInfo( sectionLineInfo, static_cast(sectionName) ); - m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo; + m_lastAssertionInfo.lineInfo = sectionLineInfo; { auto _ = scopedDeactivate( *m_outputRedirect ); @@ -638,11 +638,11 @@ namespace Catch { std::string&& message, AssertionReaction& reaction ) { - m_lastAssertionInfo = info; + m_lastAssertionInfo.lineInfo = info.lineInfo; AssertionResultData data( resultType, LazyExpression( false ) ); data.message = CATCH_MOVE( message ); - AssertionResult assertionResult{ m_lastAssertionInfo, + AssertionResult assertionResult{ info, CATCH_MOVE( data ) }; const auto isOk = assertionResult.isOk(); @@ -669,7 +669,7 @@ namespace Catch { std::string&& message, AssertionReaction& reaction ) { - m_lastAssertionInfo = info; + m_lastAssertionInfo.lineInfo = info.lineInfo; AssertionResultData data( ResultWas::ThrewException, LazyExpression( false ) ); data.message = CATCH_MOVE(message); @@ -690,7 +690,7 @@ namespace Catch { AssertionInfo const& info ) { using namespace std::string_literals; - m_lastAssertionInfo = info; + m_lastAssertionInfo.lineInfo = info.lineInfo; AssertionResultData data( ResultWas::ThrewException, LazyExpression( false ) ); data.message = "Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE"s; @@ -703,7 +703,7 @@ namespace Catch { ResultWas::OfType resultType, AssertionReaction &reaction ) { - m_lastAssertionInfo = info; + m_lastAssertionInfo.lineInfo = info.lineInfo; AssertionResultData data( resultType, LazyExpression( false ) ); AssertionResult assertionResult{ info, CATCH_MOVE( data ) };