diff --git a/src/OpenFOAM/primitives/strings/lists/CStringList.H b/src/OpenFOAM/primitives/strings/lists/CStringList.H index 42d762a6f0..30a21a4fcb 100644 --- a/src/OpenFOAM/primitives/strings/lists/CStringList.H +++ b/src/OpenFOAM/primitives/strings/lists/CStringList.H @@ -128,7 +128,7 @@ public: inline size_t length() const; //- The flattened character content, with interspersed nul-chars - inline char* data() const; + inline const char* data() const; // Edit diff --git a/src/OpenFOAM/primitives/strings/lists/CStringListI.H b/src/OpenFOAM/primitives/strings/lists/CStringListI.H index 766ff2c28b..197633691e 100644 --- a/src/OpenFOAM/primitives/strings/lists/CStringListI.H +++ b/src/OpenFOAM/primitives/strings/lists/CStringListI.H @@ -97,7 +97,7 @@ inline char** Foam::CStringList::strings() const } -inline char* Foam::CStringList::data() const +inline const char* Foam::CStringList::data() const { return data_; } diff --git a/src/OpenFOAM/primitives/strings/lists/CStringListTemplates.C b/src/OpenFOAM/primitives/strings/lists/CStringListTemplates.C index 9019855429..8c2fad816e 100644 --- a/src/OpenFOAM/primitives/strings/lists/CStringListTemplates.C +++ b/src/OpenFOAM/primitives/strings/lists/CStringListTemplates.C @@ -31,10 +31,7 @@ Foam::CStringList::CStringList const UList& input ) : - argc_(0), - len_(0), - argv_(nullptr), - data_(nullptr) + CStringList() { reset(input); } @@ -63,12 +60,10 @@ void Foam::CStringList::reset { len_ += str.size() + 1; } + --len_; // No final nul in overall count - argv_ = new char*[input.size()+1]; - data_ = new char[len_]; - --len_; // Do not include final nul terminator in overall count - - argv_[argc_] = nullptr; // extra terminator + argv_ = new char*[input.size()+1]; // Extra +1 for terminating nullptr + data_ = new char[len_+1]; // Extra +1 for terminating nul char // Copy contents char* ptr = data_;