diff options
| author | ayuanx <ayuanx@gmail.com> | 2009-11-29 06:14:28 +0000 |
|---|---|---|
| committer | ayuanx <ayuanx@gmail.com> | 2009-11-29 06:14:28 +0000 |
| commit | 4ce110e841027862f9cf19fa3ebd9d040580c5ac (patch) | |
| tree | 54fad21bc56ee39fab22cf3b6fc41e1ab3120469 /Source/Core | |
| parent | 988fabeb70eda6b7c6c3c1cffa81103eda51c208 (diff) | |
Thanks to godisgovernment's sharp eyes, now the Reset() bug in WII_IPC_HLE is fixed
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4628 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp | 22 | ||||
| -rw-r--r-- | Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.h | 2 |
2 files changed, 8 insertions, 16 deletions
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 b0bf592f1e..4a22fe8cdf 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -103,27 +103,19 @@ void Init() g_LastDeviceID = IPC_FIRST_FILEIO_ID; } -void Reset(bool _hard) +void Reset(bool _bHard) { TDeviceMap::const_iterator itr = g_DeviceMap.begin(); while (itr != g_DeviceMap.end()) { - if (itr->second) - { - if (_hard||(!itr->second->IsHardware())) - { - // Hardware should not be deleted unless it is a hard reset - delete itr->second; - g_DeviceMap.erase(itr->first); - } - } - else - { - // Erase invalid device - g_DeviceMap.erase(itr->first); - } + // Hardware should not be deleted unless it is a hard reset + if (_bHard || !itr->second->IsHardware()) + delete itr->second; ++itr; } + // Erase invalid device + itr = g_DeviceMap.find((_bHard)? IPC_FIRST_HARDWARE_ID : IPC_FIRST_FILEIO_ID); + g_DeviceMap.erase(itr, g_DeviceMap.end()); g_FileNameMap.clear(); g_LastDeviceID = IPC_FIRST_FILEIO_ID; diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.h index 643a940188..c874e55c6a 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.h @@ -35,7 +35,7 @@ void Init(); void Shutdown(); // Reset -void Reset(bool _hard = false); +void Reset(bool _bHard = false); // Do State void DoState(PointerWrap &p); |
