From 54dc7e849fe305529a21ecc7cba8db3716fe215c Mon Sep 17 00:00:00 2001 From: Tristan 'Natrist' Cormier Date: Fri, 10 Mar 2023 15:37:06 -0500 Subject: [PATCH] feat(string): add copy helper method for RCString source --- common/string/RCString.cpp | 4 ++++ common/string/RCString.hpp | 1 + test/String.cpp | 8 ++++++++ 3 files changed, 13 insertions(+) diff --git a/common/string/RCString.cpp b/common/string/RCString.cpp index ae992e2..2f13ffc 100644 --- a/common/string/RCString.cpp +++ b/common/string/RCString.cpp @@ -15,6 +15,10 @@ void RCString::Copy(const char* source) { } } +void RCString::Copy(const RCString& source) { + this->Copy(source.GetString()); +} + void RCString::Get(char* buf, size_t bufSize) const { const char* str = this->GetString(); diff --git a/common/string/RCString.hpp b/common/string/RCString.hpp index dbe2510..d41e2a9 100644 --- a/common/string/RCString.hpp +++ b/common/string/RCString.hpp @@ -12,6 +12,7 @@ class RCString : public TRefCnt { // Member functions RCString(); void Copy(const char* source); + void Copy(const RCString& source); void Get(char* buf, size_t bufSize) const; const char* GetString() const; }; diff --git a/test/String.cpp b/test/String.cpp index baccec2..807b612 100644 --- a/test/String.cpp +++ b/test/String.cpp @@ -9,6 +9,14 @@ TEST_CASE("RCString::Copy", "[string]") { rcStr.Copy(str); REQUIRE(!SStrCmp(str, rcStr.GetString(), STORM_MAX_STR)); } + + SECTION("copies source RCString") { + RCString rcStr1; + rcStr1.Copy("foo"); + RCString rcStr2; + rcStr2.Copy(rcStr1); + REQUIRE(!SStrCmp(rcStr1.GetString(), rcStr2.GetString(), STORM_MAX_STR)); + } } TEST_CASE("RCString::GetString", "[string]") {