diff options
| author | Martin Hořeňovský | 2023-02-19 23:53:34 +0100 |
|---|---|---|
| committer | Martin Hořeňovský | 2023-02-20 15:17:35 +0100 |
| commit | 4f7c8cb28a0fdb4cc8b93f139b1b1e5d3ff0a328 (patch) | |
| tree | bb903b29161d70389a442157c43403031a21f3d3 /src/catch2/internal/catch_test_case_tracker.cpp | |
| parent | e1dbad4c9e9e5517c188cbd8af04cb6369851207 (diff) | |
| download | catch3-4f7c8cb28a0fdb4cc8b93f139b1b1e5d3ff0a328.tar.gz | |
Avoid copying NameAndLocationRef when passed as argument
`NameAndLocationRef` is pretty large type, so even in release build,
it is unlikely to be passed in registers. In addition to the fact
that some platforms currently do not allow passing even small types
in register (Windows ABI!!), it is better to pass it as a ref,
effectively passing around a pointer.
Diffstat (limited to 'src/catch2/internal/catch_test_case_tracker.cpp')
| -rw-r--r-- | src/catch2/internal/catch_test_case_tracker.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/catch2/internal/catch_test_case_tracker.cpp b/src/catch2/internal/catch_test_case_tracker.cpp index a9d6614f..c48932b1 100644 --- a/src/catch2/internal/catch_test_case_tracker.cpp +++ b/src/catch2/internal/catch_test_case_tracker.cpp @@ -38,7 +38,7 @@ namespace TestCaseTracking { m_children.push_back( CATCH_MOVE(child) ); } - ITracker* ITracker::findChild( NameAndLocationRef nameAndLocation ) { + ITracker* ITracker::findChild( NameAndLocationRef const& nameAndLocation ) { auto it = std::find_if( m_children.begin(), m_children.end(), @@ -177,7 +177,7 @@ namespace TestCaseTracking { bool SectionTracker::isSectionTracker() const { return true; } - SectionTracker& SectionTracker::acquire( TrackerContext& ctx, NameAndLocationRef nameAndLocation ) { + SectionTracker& SectionTracker::acquire( TrackerContext& ctx, NameAndLocationRef const& nameAndLocation ) { SectionTracker* tracker; ITracker& currentTracker = ctx.currentTracker(); |