From 1493c2ba9cc654657ed018fb525a4d3b0b2ad2bf Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 1 Aug 2009 17:51:17 +0000 Subject: [PATCH] fix some memleaks in NANDContentLoader.cpp and ISOProperties.cpp git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3919 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/DiscIO/Src/DiscScrubber.cpp | 2 +- Source/Core/DiscIO/Src/NANDContentLoader.cpp | 1 + Source/Core/DolphinWX/Src/ISOProperties.cpp | 10 +++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Source/Core/DiscIO/Src/DiscScrubber.cpp b/Source/Core/DiscIO/Src/DiscScrubber.cpp index 8dd9c7cc23..f76f8a10ea 100644 --- a/Source/Core/DiscIO/Src/DiscScrubber.cpp +++ b/Source/Core/DiscIO/Src/DiscScrubber.cpp @@ -127,7 +127,7 @@ bool Scrub(const char* filename, CompressCB callback, void* arg) // Warn if not DVD5 or DVD9 size if (numClusters != 0x23048 && numClusters != 0x46090) - WARN_LOG(DISCIO, "%s is not a standard sized wii m_Disc! (%x blocks)", filename, numClusters); + WARN_LOG(DISCIO, "%s is not a standard sized wii disc! (%x blocks)", filename, numClusters); // Table of free blocks m_FreeTable = new u8[numClusters]; diff --git a/Source/Core/DiscIO/Src/NANDContentLoader.cpp b/Source/Core/DiscIO/Src/NANDContentLoader.cpp index fafb5358e3..eeda917b31 100644 --- a/Source/Core/DiscIO/Src/NANDContentLoader.cpp +++ b/Source/Core/DiscIO/Src/NANDContentLoader.cpp @@ -72,6 +72,7 @@ CSharedContent::CSharedContent() m_Elements.push_back(Element); } } + fclose(pFile); } } diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp index c2ee9497eb..5d2bb17906 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.cpp +++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp @@ -199,7 +199,15 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW CISOProperties::~CISOProperties() { if (IsVolumeWiiDisc(OpenISO)) - WiiDisc.clear(); + { + for (std::vector::const_iterator PartIter = WiiDisc.begin(); PartIter != WiiDisc.end(); ++PartIter) + { + delete PartIter->FileSystem; + delete PartIter->Partition; + for (std::vector::const_iterator FileIter = PartIter->Files.begin(); FileIter != PartIter->Files.end(); ++FileIter) + delete *FileIter; + } + } else if (!IsVolumeWadFile(OpenISO)) delete pFileSystem;