forked from eden-emu/eden
		
	yuzu-cmd: Fix input callback crash on close
This commit is contained in:
		
							parent
							
								
									0e8043fc24
								
							
						
					
					
						commit
						23d7d8b9df
					
				
					 3 changed files with 13 additions and 0 deletions
				
			
		|  | @ -145,6 +145,7 @@ void EmulatedDevices::UnloadInput() { | ||||||
|     for (auto& button : keyboard_modifier_devices) { |     for (auto& button : keyboard_modifier_devices) { | ||||||
|         button.reset(); |         button.reset(); | ||||||
|     } |     } | ||||||
|  |     ring_analog_device.reset(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void EmulatedDevices::EnableConfiguration() { | void EmulatedDevices::EnableConfiguration() { | ||||||
|  |  | ||||||
|  | @ -138,6 +138,16 @@ struct InputSubsystem::Impl { | ||||||
|         Common::Input::UnregisterFactory<Common::Input::OutputDevice>(tas_input->GetEngineName()); |         Common::Input::UnregisterFactory<Common::Input::OutputDevice>(tas_input->GetEngineName()); | ||||||
|         tas_input.reset(); |         tas_input.reset(); | ||||||
| 
 | 
 | ||||||
|  |         Common::Input::UnregisterFactory<Common::Input::InputDevice>(camera->GetEngineName()); | ||||||
|  |         Common::Input::UnregisterFactory<Common::Input::OutputDevice>(camera->GetEngineName()); | ||||||
|  |         camera.reset(); | ||||||
|  | 
 | ||||||
|  |         Common::Input::UnregisterFactory<Common::Input::InputDevice>( | ||||||
|  |             virtual_amiibo->GetEngineName()); | ||||||
|  |         Common::Input::UnregisterFactory<Common::Input::OutputDevice>( | ||||||
|  |             virtual_amiibo->GetEngineName()); | ||||||
|  |         virtual_amiibo.reset(); | ||||||
|  | 
 | ||||||
| #ifdef HAVE_SDL2 | #ifdef HAVE_SDL2 | ||||||
|         Common::Input::UnregisterFactory<Common::Input::InputDevice>(sdl->GetEngineName()); |         Common::Input::UnregisterFactory<Common::Input::InputDevice>(sdl->GetEngineName()); | ||||||
|         Common::Input::UnregisterFactory<Common::Input::OutputDevice>(sdl->GetEngineName()); |         Common::Input::UnregisterFactory<Common::Input::OutputDevice>(sdl->GetEngineName()); | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ | ||||||
| #include "common/scm_rev.h" | #include "common/scm_rev.h" | ||||||
| #include "common/settings.h" | #include "common/settings.h" | ||||||
| #include "core/core.h" | #include "core/core.h" | ||||||
|  | #include "core/hid/hid_core.h" | ||||||
| #include "core/perf_stats.h" | #include "core/perf_stats.h" | ||||||
| #include "input_common/drivers/keyboard.h" | #include "input_common/drivers/keyboard.h" | ||||||
| #include "input_common/drivers/mouse.h" | #include "input_common/drivers/mouse.h" | ||||||
|  | @ -26,6 +27,7 @@ EmuWindow_SDL2::EmuWindow_SDL2(InputCommon::InputSubsystem* input_subsystem_, Co | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| EmuWindow_SDL2::~EmuWindow_SDL2() { | EmuWindow_SDL2::~EmuWindow_SDL2() { | ||||||
|  |     system.HIDCore().UnloadInputDevices(); | ||||||
|     input_subsystem->Shutdown(); |     input_subsystem->Shutdown(); | ||||||
|     SDL_Quit(); |     SDL_Quit(); | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 german77
						german77