summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorayuanx <ayuanx@gmail.com>2009-11-29 06:14:28 +0000
committerayuanx <ayuanx@gmail.com>2009-11-29 06:14:28 +0000
commit4ce110e841027862f9cf19fa3ebd9d040580c5ac (patch)
tree54fad21bc56ee39fab22cf3b6fc41e1ab3120469 /Source
parent988fabeb70eda6b7c6c3c1cffa81103eda51c208 (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')
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp22
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.h2
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);