From ac1520325ce4b492fa734629aa34818d2b35b007 Mon Sep 17 00:00:00 2001 From: Bernhard Liebl Date: Mon, 15 Jan 2018 09:20:45 +0100 Subject: [PATCH] Catch NSException in macOS run loop to prevent crashs (cherry picked from commit 3ff18ee61e4a29c58a106b28bd0f1787f408eba8) --- platform/osx/os_osx.mm | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index 5bba557b926..95b8091597c 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -2219,12 +2219,21 @@ void OS_OSX::run() { //int frames=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();