Fixed the crash which occurred when opening Wiimote configuration before a game was started.

This commit is contained in:
skidau 2015-02-04 18:48:19 +11:00
parent fc8ea9c3b3
commit 3709a1ce3a
3 changed files with 9 additions and 5 deletions

View File

@ -484,10 +484,9 @@ void EmuThread()
HW::Shutdown();
INFO_LOG(CONSOLE, "%s", StopMessage(false, "HW shutdown").c_str());
Wiimote::Shutdown();
if (init_controllers)
{
Wiimote::Shutdown();
Keyboard::Shutdown();
Pad::Shutdown();
init_controllers = false;

View File

@ -40,8 +40,9 @@ void Shutdown()
void Initialize(void* const hwnd, bool wait)
{
// add 4 Wiimotes
for (unsigned int i = WIIMOTE_CHAN_0; i<MAX_BBMOTES; ++i)
s_config.controllers.push_back(new WiimoteEmu::Wiimote(i));
if (s_config.controllers.empty())
for (unsigned int i = WIIMOTE_CHAN_0; i < MAX_BBMOTES; ++i)
s_config.controllers.push_back(new WiimoteEmu::Wiimote(i));
g_controller_interface.Initialize(hwnd);

View File

@ -52,6 +52,7 @@
#include "Core/HW/DVDInterface.h"
#include "Core/HW/GCKeyboard.h"
#include "Core/HW/GCPad.h"
#include "Core/HW/Wiimote.h"
#include "DolphinWX/Frame.h"
#include "DolphinWX/GameListCtrl.h"
@ -356,10 +357,12 @@ bool CFrame::InitControllers()
HotkeyManagerEmu::Initialize(reinterpret_cast<void*>(win));
Pad::Initialize(reinterpret_cast<void*>(win));
Keyboard::Initialize(reinterpret_cast<void*>(win));
Wiimote::Initialize(reinterpret_cast<void*>(win));
#else
HotkeyManagerEmu::Initialize(reinterpret_cast<void*>(GetHandle()));
Pad::Initialize(reinterpret_cast<void*>(GetHandle()));
Keyboard::Initialize(reinterpret_cast<void*>(GetHandle()));
Wiimote::Initialize(reinterpret_cast<void*>(GetHandle()));
#endif
return true;
}
@ -516,9 +519,10 @@ CFrame::~CFrame()
if (m_bHotkeysInit)
{
HotkeyManagerEmu::Shutdown();
Wiimote::Shutdown();
Keyboard::Shutdown();
Pad::Shutdown();
HotkeyManagerEmu::Shutdown();
m_bHotkeysInit = false;
}