mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-29 16:53:30 +01:00
Fix StringRef self-assignment after substring
Thanks to Alex Tkachenko for spotting it.
This commit is contained in:
parent
e680c4b9fb
commit
3bce8ba14b
@ -71,10 +71,12 @@ namespace Catch {
|
||||
}
|
||||
|
||||
auto operator = ( StringRef const &other ) noexcept -> StringRef& {
|
||||
delete[] m_data;
|
||||
m_data = nullptr;
|
||||
m_start = other.m_start;
|
||||
m_size = other.m_size;
|
||||
if( this != &other ) {
|
||||
delete[] m_data;
|
||||
m_data = nullptr;
|
||||
m_start = other.m_start;
|
||||
m_size = other.m_size;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@ -92,6 +92,11 @@ TEST_CASE( "StringRef", "[Strings][StringRef]" ) {
|
||||
REQUIRE( isOwned( ss ) );
|
||||
|
||||
REQUIRE( ss.currentData() != s.currentData() ); // different pointer value
|
||||
|
||||
SECTION( "Self-assignment after substring" ) {
|
||||
ss = ss;
|
||||
REQUIRE(isOwned(ss) == true);
|
||||
}
|
||||
}
|
||||
|
||||
SECTION( "non-zero-based substring") {
|
||||
|
Loading…
Reference in New Issue
Block a user