summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2013-09-23 01:43:18 -0500
committerRyan Houdek <Sonicadvance1@gmail.com>2013-09-23 01:43:18 -0500
commit96a77f9feb1b7feb915efa91582b73814b4e960d (patch)
tree340bd8c62bf603464d8b5962b1055fb0730ef11e /Source/Core
parentbab91494d53f15d804834ba5d11730b0e855ebd8 (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.cpp2
-rw-r--r--Source/Core/DolphinWX/Src/Android/ButtonManager.h2
-rw-r--r--Source/Core/DolphinWX/Src/MainAndroid.cpp3
-rw-r--r--Source/Core/VideoCommon/Src/OnScreenDisplay.cpp4
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