mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-10-31 23:06:43 +08:00 
			
		
		
		
	yuzu: Fix crash on shutdown
Previously, accessing the room_network when it was already freed would crash the emulator on shutdown. Co-Authored-By: Narr the Reg <5944268+german77@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									5cd95fa949
								
							
						
					
					
						commit
						72ff5cd445
					
				| @ -492,8 +492,6 @@ GMainWindow::~GMainWindow() { | ||||
|         delete render_window; | ||||
|     } | ||||
| 
 | ||||
|     system->GetRoomNetwork().Shutdown(); | ||||
| 
 | ||||
| #ifdef __linux__ | ||||
|     ::close(sig_interrupt_fds[0]); | ||||
|     ::close(sig_interrupt_fds[1]); | ||||
| @ -3831,6 +3829,7 @@ void GMainWindow::closeEvent(QCloseEvent* event) { | ||||
| 
 | ||||
|     render_window->close(); | ||||
|     multiplayer_state->Close(); | ||||
|     system->GetRoomNetwork().Shutdown(); | ||||
| 
 | ||||
|     QWidget::closeEvent(event); | ||||
| } | ||||
|  | ||||
| @ -59,7 +59,9 @@ MultiplayerState::MultiplayerState(QWidget* parent, QStandardItemModel* game_lis | ||||
|             }); | ||||
| } | ||||
| 
 | ||||
| MultiplayerState::~MultiplayerState() { | ||||
| MultiplayerState::~MultiplayerState() = default; | ||||
| 
 | ||||
| void MultiplayerState::Close() { | ||||
|     if (state_callback_handle) { | ||||
|         if (auto member = room_network.GetRoomMember().lock()) { | ||||
|             member->Unbind(state_callback_handle); | ||||
| @ -71,9 +73,6 @@ MultiplayerState::~MultiplayerState() { | ||||
|             member->Unbind(error_callback_handle); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void MultiplayerState::Close() { | ||||
|     if (host_room) { | ||||
|         host_room->close(); | ||||
|     } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user