diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-09-23 01:43:18 -0500 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-09-23 01:43:18 -0500 |
| commit | 96a77f9feb1b7feb915efa91582b73814b4e960d (patch) | |
| tree | 340bd8c62bf603464d8b5962b1055fb0730ef11e /Source/Core | |
| parent | bab91494d53f15d804834ba5d11730b0e855ebd8 (diff) | |
[Android] Fix the ability to stop the game and start another.
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/DolphinWX/Src/Android/ButtonManager.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/DolphinWX/Src/Android/ButtonManager.h | 2 | ||||
| -rw-r--r-- | Source/Core/DolphinWX/Src/MainAndroid.cpp | 3 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/Src/OnScreenDisplay.cpp | 4 |
4 files changed, 9 insertions, 2 deletions
diff --git a/Source/Core/DolphinWX/Src/Android/ButtonManager.cpp b/Source/Core/DolphinWX/Src/Android/ButtonManager.cpp index d3aa1c2a93..1aa7187075 100644 --- a/Source/Core/DolphinWX/Src/Android/ButtonManager.cpp +++ b/Source/Core/DolphinWX/Src/Android/ButtonManager.cpp @@ -177,6 +177,8 @@ namespace ButtonManager delete *it; for (auto it = m_controllers.begin(); it != m_controllers.end(); ++it) delete it->second; + m_controllers.clear(); + m_buttons.clear(); } void DrawButtons() diff --git a/Source/Core/DolphinWX/Src/Android/ButtonManager.h b/Source/Core/DolphinWX/Src/Android/ButtonManager.h index bc5204d9bf..39b828efb7 100644 --- a/Source/Core/DolphinWX/Src/Android/ButtonManager.h +++ b/Source/Core/DolphinWX/Src/Android/ButtonManager.h @@ -118,7 +118,7 @@ namespace ButtonManager ~InputDevice() { for (auto it = m_binds.begin(); it != m_binds.end(); ++it) - delete it->second; + delete it->second; } void AddBind(sBind *bind) { m_binds[bind->m_buttontype] = bind; } void PressEvent(int button, int action); diff --git a/Source/Core/DolphinWX/Src/MainAndroid.cpp b/Source/Core/DolphinWX/Src/MainAndroid.cpp index 8fcab598cc..60413b74c5 100644 --- a/Source/Core/DolphinWX/Src/MainAndroid.cpp +++ b/Source/Core/DolphinWX/Src/MainAndroid.cpp @@ -199,7 +199,7 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_PauseEmulati JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_StopEmulation(JNIEnv *env, jobject obj) { - PowerPC::Stop(); + Core::Stop(); updateMainFrameEvent.Set(); // Kick the waiting event } JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_onTouchEvent(JNIEnv *env, jobject obj, jint Action, jfloat X, jfloat Y) @@ -358,6 +358,7 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Run(JNIEnv * VideoBackend::ClearList(); SConfig::Shutdown(); LogManager::Shutdown(); + ANativeWindow_release(surf); } diff --git a/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp b/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp index b66c2019c9..90e5c008ef 100644 --- a/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp +++ b/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp @@ -84,6 +84,10 @@ void DoCallbacks(CallbackType type) { it->second(); } + + // Wipe all callbacks on shutdown + if (type == OSD_SHUTDOWN) + s_callbacks.clear(); } } // namespace |
