From 418f46ea72828d828febf2a1eadfcb262e9a974d Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 19 Mar 2012 17:55:46 +1300 Subject: [PATCH] Fixed memory leak. And added braces to match the rest of the switch statement in FileIO. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp | 6 ++++++ Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp index 6c1ab5baef..b552185f87 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -390,7 +390,13 @@ void ExecuteCommand(u32 _Address) INFO_LOG(WII_IPC_FILEIO, "IOP: Open File (Device=%s, ID=%08x, Mode=%i)", pDevice->GetDeviceName().c_str(), DeviceID, Mode); if (Memory::Read_U32(_Address + 4) == DeviceID) + { g_FdMap[DeviceID] = pDevice; + } + else + { + delete pDevice; + } } } diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp index f5a893012a..1f0b0d72cd 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp @@ -157,18 +157,21 @@ bool CWII_IPC_HLE_Device_FileIO::OpenFile() break; } case ISFS_OPEN_WRITE: + { m_pFileHandle.Open(m_Filename, "r+b"); break; - + } case ISFS_OPEN_RW: { m_pFileHandle.Open(m_Filename, "r+b"); break; } default: + { PanicAlertT("FileIO: Unknown open mode : 0x%02x", m_Mode); break; } + } return m_pFileHandle.IsOpen(); }