diff --git a/src/tools/clangbackend/ipcsource/unsavedfiles.cpp b/src/tools/clangbackend/ipcsource/unsavedfiles.cpp index 90f9e2c79614a8ed646ace20d1344081eecdf076..9e9a522d52a8ecc080d6766e3edc99ca4ae3e682 100644 --- a/src/tools/clangbackend/ipcsource/unsavedfiles.cpp +++ b/src/tools/clangbackend/ipcsource/unsavedfiles.cpp @@ -53,7 +53,7 @@ UnsavedFilesData::UnsavedFilesData() UnsavedFilesData::~UnsavedFilesData() { - for (const CXUnsavedFile &cxUnsavedFile : cxUnsavedFiles) + for (CXUnsavedFile &cxUnsavedFile : cxUnsavedFiles) UnsavedFiles::deleteCXUnsavedFile(cxUnsavedFile); cxUnsavedFiles.clear(); @@ -99,7 +99,7 @@ void UnsavedFiles::remove(const QVector &fileContainers) void UnsavedFiles::clear() { - for (const CXUnsavedFile &cxUnsavedFile : d->cxUnsavedFiles) + for (CXUnsavedFile &cxUnsavedFile : d->cxUnsavedFiles) deleteCXUnsavedFile(cxUnsavedFile); d->cxUnsavedFiles.clear(); @@ -137,10 +137,13 @@ CXUnsavedFile UnsavedFiles::createCxUnsavedFile(const Utf8String &filePath, cons return CXUnsavedFile { cxUnsavedFilePath, cxUnsavedFileContent, ulong(fileContent.byteSize())}; } -void UnsavedFiles::deleteCXUnsavedFile(const CXUnsavedFile &cxUnsavedFile) +void UnsavedFiles::deleteCXUnsavedFile(CXUnsavedFile &cxUnsavedFile) { delete [] cxUnsavedFile.Contents; delete [] cxUnsavedFile.Filename; + cxUnsavedFile.Contents = nullptr; + cxUnsavedFile.Filename = nullptr; + cxUnsavedFile.Length = 0; } void UnsavedFiles::updateCXUnsavedFileWithFileContainer(const FileContainer &fileContainer) diff --git a/src/tools/clangbackend/ipcsource/unsavedfiles.h b/src/tools/clangbackend/ipcsource/unsavedfiles.h index 8a0a02a4307d0165942b83d0980aba359cab9ca3..9104bc87b33271b06ab183fea32bd4a2b4ee3710 100644 --- a/src/tools/clangbackend/ipcsource/unsavedfiles.h +++ b/src/tools/clangbackend/ipcsource/unsavedfiles.h @@ -73,7 +73,7 @@ public: private: CXUnsavedFile createCxUnsavedFile(const Utf8String &filePath, const Utf8String &fileContent); - static void deleteCXUnsavedFile(const CXUnsavedFile &cxUnsavedFile); + static void deleteCXUnsavedFile(CXUnsavedFile &cxUnsavedFile); void updateCXUnsavedFileWithFileContainer(const FileContainer &fileContainer); void removeCXUnsavedFile(const FileContainer &fileContainer); void addOrUpdateCXUnsavedFile(const FileContainer &fileContainer);