diff --git a/czi/source_code/azgra_lib/include/azgra/azgra_string.h b/czi/source_code/azgra_lib/include/azgra/azgra_string.h index 47c0885b3b33fa7a359bf57dd659fcb0e726761f..70237dc9b65264a12e5fbb4ebf36ad214e14c174 100644 --- a/czi/source_code/azgra_lib/include/azgra/azgra_string.h +++ b/czi/source_code/azgra_lib/include/azgra/azgra_string.h @@ -70,6 +70,7 @@ public: * @param cString Char array to create string from. */ SimpleString(const char *cString); + ~SimpleString(); /** * @brief Get the c string object diff --git a/czi/source_code/azgra_lib/src/azgra_string.cpp b/czi/source_code/azgra_lib/src/azgra_string.cpp index b07e37f21cef48dfd78500225a00af113be38e6d..02492ab607e716b3c7fe2d638916feda782c02d8 100644 --- a/czi/source_code/azgra_lib/src/azgra_string.cpp +++ b/czi/source_code/azgra_lib/src/azgra_string.cpp @@ -1,4 +1,4 @@ -#include "azgra_string.h" +#include <azgra_string.h> namespace azgra { @@ -10,7 +10,7 @@ char *SimpleString::alloc_string(const size_t &length) return memory; } -char *SimpleString::realloc_string(const size_t &length, const char* oldString, const size_t oldLen) +char *SimpleString::realloc_string(const size_t &length, const char *oldString, const size_t oldLen) { char *memory = alloc_string(length); for (size_t i = 0; i < oldLen; i++) @@ -50,7 +50,7 @@ void SimpleString::internal_initalize(const char *string) } SimpleString::SimpleString(char *cString, const size_t length, bool noAlloc) -{ +{ assert(noAlloc); _string = cString; _length = length; @@ -98,6 +98,12 @@ SimpleString::SimpleString(const char *cString) internal_initalize(cString); } +SimpleString::~SimpleString() +{ + free_string(_string); + _length = 0; +} + void SimpleString::internal_concat(const char *string, const size_t length) { size_t newLength = _length + length; @@ -471,19 +477,19 @@ SimpleString SimpleString::substring(const size_t fromIndex, const size_t length return result; } -SimpleString SimpleString::replicate(const char* cString, const int replicationCount) +SimpleString SimpleString::replicate(const char *cString, const int replicationCount) { size_t replLen = c_string_length(cString); size_t resultLen = replLen * replicationCount; - char* resultMemory = alloc_string(resultLen); + char *resultMemory = alloc_string(resultLen); SimpleString result(resultMemory, resultLen, true); - for(int repl = 0; repl < replicationCount; repl++) + for (int repl = 0; repl < replicationCount; repl++) { - for(size_t charIndex = 0; charIndex < replLen; charIndex++) + for (size_t charIndex = 0; charIndex < replLen; charIndex++) { - result[(repl*replLen) + charIndex] = cString[charIndex]; + result[(repl * replLen) + charIndex] = cString[charIndex]; } } return result;