diff options
| author | Martin Hořeňovský | 2025-08-26 12:36:06 +0200 |
|---|---|---|
| committer | Martin Hořeňovský | 2025-08-26 12:37:52 +0200 |
| commit | 227af796b4ede6258f9b1ff8b69cd1f03d32f662 (patch) | |
| tree | cfffe971cbc8d28b4de33c3f87bd590050c679dd /src/catch2/catch_message.cpp | |
| parent | 33adb4c779feaa3a98bb45ec1ebaf2864bb110b7 (diff) | |
| download | catch3-227af796b4ede6258f9b1ff8b69cd1f03d32f662.tar.gz | |
Move MessageInfos into the run context
Together with the previous change, this means that `ScopedMessage`
only needs to keep around a single unsigned int.
Diffstat (limited to 'src/catch2/catch_message.cpp')
| -rw-r--r-- | src/catch2/catch_message.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/catch2/catch_message.cpp b/src/catch2/catch_message.cpp index 675e85f6..adb9b476 100644 --- a/src/catch2/catch_message.cpp +++ b/src/catch2/catch_message.cpp @@ -19,20 +19,19 @@ namespace Catch { ScopedMessage::ScopedMessage( MessageBuilder&& builder ): - m_info( CATCH_MOVE(builder.m_info) ) { - m_info.message = builder.m_stream.str(); - getResultCapture().pushScopedMessage( m_info ); + m_messageId( builder.m_info.sequence ) { + MessageInfo info( CATCH_MOVE( builder.m_info ) ); + info.message = builder.m_stream.str(); + getResultCapture().pushScopedMessage( CATCH_MOVE(info) ); } ScopedMessage::ScopedMessage( ScopedMessage&& old ) noexcept: - m_info( CATCH_MOVE( old.m_info ) ) { + m_messageId( old.m_messageId ) { old.m_moved = true; } ScopedMessage::~ScopedMessage() { - if ( !m_moved ){ - getResultCapture().popScopedMessage(m_info.sequence); - } + if ( !m_moved ) { getResultCapture().popScopedMessage( m_messageId ); } } @@ -109,7 +108,7 @@ namespace Catch { void Capturer::captureValue( size_t index, std::string const& value ) { assert( index < m_messages.size() ); m_messages[index].message += value; - m_resultCapture.pushScopedMessage( m_messages[index] ); + m_resultCapture.pushScopedMessage( CATCH_MOVE(m_messages[index]) ); m_captured++; } |