diff --git a/src/core/String.cpp b/src/core/String.cpp index 608b2fe07c..8065f6d0e4 100644 --- a/src/core/String.cpp +++ b/src/core/String.cpp @@ -40,7 +40,9 @@ namespace String va_start(args, format); const utf8 * buffer = Format_VA(format, args); va_end(args); - return ToStd(buffer); + std::string returnValue = ToStd(buffer); + Memory::Free(buffer); + return returnValue; } bool IsNullOrEmpty(const utf8 * str) diff --git a/src/object/ObjectRepository.cpp b/src/object/ObjectRepository.cpp index 1e37cebc89..f81b30a51d 100644 --- a/src/object/ObjectRepository.cpp +++ b/src/object/ObjectRepository.cpp @@ -94,11 +94,11 @@ static void ReportMissingObject(const rct_object_entry * entry); class ObjectRepository : public IObjectRepository { - IPlatformEnvironment * _env; + IPlatformEnvironment * _env = nullptr; std::vector _items; - QueryDirectoryResult _queryDirectoryResult; + QueryDirectoryResult _queryDirectoryResult = { 0 }; ObjectEntryMap _itemMap; - uint16 _languageId; + uint16 _languageId = 0; public: ObjectRepository(IPlatformEnvironment * env) diff --git a/src/ride/TrackDesignRepository.cpp b/src/ride/TrackDesignRepository.cpp index 623340e06f..ca9d22501c 100644 --- a/src/ride/TrackDesignRepository.cpp +++ b/src/ride/TrackDesignRepository.cpp @@ -68,7 +68,7 @@ private: IPlatformEnvironment * _env; std::vector _items; - QueryDirectoryResult _directoryQueryResult; + QueryDirectoryResult _directoryQueryResult = { 0 }; public: TrackDesignRepository(IPlatformEnvironment * env) diff --git a/src/title/TitleSequence.cpp b/src/title/TitleSequence.cpp index 8ab7766d53..d60dd41250 100644 --- a/src/title/TitleSequence.cpp +++ b/src/title/TitleSequence.cpp @@ -122,6 +122,7 @@ extern "C" Memory::Free(seq->Saves[i]); } Memory::Free(seq->Saves); + Memory::Free(seq); } } diff --git a/src/title/TitleSequenceManager.cpp b/src/title/TitleSequenceManager.cpp index 6c3b5ec088..7d06d73bc8 100644 --- a/src/title/TitleSequenceManager.cpp +++ b/src/title/TitleSequenceManager.cpp @@ -240,7 +240,9 @@ namespace TitleSequenceManager if (String::Equals(Path::GetExtension(scanPath), ".txt", true)) { // If we are given a .txt file, set the path to the containing directory - path = std::string(Path::GetDirectory(scanPath)); + utf8 * utf8Path = Path::GetDirectory(scanPath); + path = std::string(utf8Path); + Memory::Free(utf8Path); isZip = false; } else