Browse Source

Merge pull request #15739 from poke1024/macos-catch-exception

Catch NSException in macOS run loop to prevent crashs
Max Hilbrunner 7 years ago
parent
commit
0db3d1d2a7
1 changed files with 14 additions and 5 deletions
  1. 14 5
      platform/osx/os_osx.mm

+ 14 - 5
platform/osx/os_osx.mm

@@ -2427,12 +2427,21 @@ void OS_OSX::run() {
 	//int frames=0;
 	//int frames=0;
 	//uint64_t frame=0;
 	//uint64_t frame=0;
 
 
-	while (!force_quit) {
+	bool quit = false;
 
 
-		process_events(); // get rid of pending events
-		joypad_osx->process_joypads();
-		if (Main::iteration() == true)
-			break;
+	while (!force_quit && !quit) {
+
+		@try {
+
+			process_events(); // get rid of pending events
+			joypad_osx->process_joypads();
+
+			if (Main::iteration() == true) {
+				quit = true;
+			}
+		} @catch (NSException *exception) {
+			ERR_PRINTS("NSException: " + String([exception reason].UTF8String));
+		}
 	};
 	};
 
 
 	main_loop->finish();
 	main_loop->finish();