summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar liamwhite2022-11-27 15:39:24 -0500
committerGravatar GitHub2022-11-27 15:39:24 -0500
commita2fde04da9630a5bf4948a0d2798d969956eb389 (patch)
tree9aa1133d4b1635e0ccb111c2a73c01c1d044a148 /src
parentMerge pull request #9323 from german77/intructions (diff)
parentyuzu-cmd: Fix input callback crash on close (diff)
downloadyuzu-a2fde04da9630a5bf4948a0d2798d969956eb389.tar.gz
yuzu-a2fde04da9630a5bf4948a0d2798d969956eb389.tar.xz
yuzu-a2fde04da9630a5bf4948a0d2798d969956eb389.zip
Merge pull request #9317 from german77/input-crash
yuzu-cmd: Fix input callback crash on close
Diffstat (limited to '')
-rw-r--r--src/core/hid/emulated_devices.cpp1
-rw-r--r--src/input_common/main.cpp10
-rw-r--r--src/yuzu_cmd/emu_window/emu_window_sdl2.cpp2
3 files changed, 13 insertions, 0 deletions
diff --git a/src/core/hid/emulated_devices.cpp b/src/core/hid/emulated_devices.cpp
index 8d367b546..658dbd318 100644
--- a/src/core/hid/emulated_devices.cpp
+++ b/src/core/hid/emulated_devices.cpp
@@ -145,6 +145,7 @@ void EmulatedDevices::UnloadInput() {
145 for (auto& button : keyboard_modifier_devices) { 145 for (auto& button : keyboard_modifier_devices) {
146 button.reset(); 146 button.reset();
147 } 147 }
148 ring_analog_device.reset();
148} 149}
149 150
150void EmulatedDevices::EnableConfiguration() { 151void EmulatedDevices::EnableConfiguration() {
diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp
index b2064ef95..76df133f3 100644
--- a/src/input_common/main.cpp
+++ b/src/input_common/main.cpp
@@ -138,6 +138,16 @@ struct InputSubsystem::Impl {
138 Common::Input::UnregisterFactory<Common::Input::OutputDevice>(tas_input->GetEngineName()); 138 Common::Input::UnregisterFactory<Common::Input::OutputDevice>(tas_input->GetEngineName());
139 tas_input.reset(); 139 tas_input.reset();
140 140
141 Common::Input::UnregisterFactory<Common::Input::InputDevice>(camera->GetEngineName());
142 Common::Input::UnregisterFactory<Common::Input::OutputDevice>(camera->GetEngineName());
143 camera.reset();
144
145 Common::Input::UnregisterFactory<Common::Input::InputDevice>(
146 virtual_amiibo->GetEngineName());
147 Common::Input::UnregisterFactory<Common::Input::OutputDevice>(
148 virtual_amiibo->GetEngineName());
149 virtual_amiibo.reset();
150
141#ifdef HAVE_SDL2 151#ifdef HAVE_SDL2
142 Common::Input::UnregisterFactory<Common::Input::InputDevice>(sdl->GetEngineName()); 152 Common::Input::UnregisterFactory<Common::Input::InputDevice>(sdl->GetEngineName());
143 Common::Input::UnregisterFactory<Common::Input::OutputDevice>(sdl->GetEngineName()); 153 Common::Input::UnregisterFactory<Common::Input::OutputDevice>(sdl->GetEngineName());
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp
index 4ac72c2f6..37dd1747c 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp
@@ -7,6 +7,7 @@
7#include "common/scm_rev.h" 7#include "common/scm_rev.h"
8#include "common/settings.h" 8#include "common/settings.h"
9#include "core/core.h" 9#include "core/core.h"
10#include "core/hid/hid_core.h"
10#include "core/perf_stats.h" 11#include "core/perf_stats.h"
11#include "input_common/drivers/keyboard.h" 12#include "input_common/drivers/keyboard.h"
12#include "input_common/drivers/mouse.h" 13#include "input_common/drivers/mouse.h"
@@ -26,6 +27,7 @@ EmuWindow_SDL2::EmuWindow_SDL2(InputCommon::InputSubsystem* input_subsystem_, Co
26} 27}
27 28
28EmuWindow_SDL2::~EmuWindow_SDL2() { 29EmuWindow_SDL2::~EmuWindow_SDL2() {
30 system.HIDCore().UnloadInputDevices();
29 input_subsystem->Shutdown(); 31 input_subsystem->Shutdown();
30 SDL_Quit(); 32 SDL_Quit();
31} 33}