changeset 28063:60e4a9909fac

Fix App Nap for new prototype of "objc_msgSend" in OS X Mojave (bug #57754). * libgui/src/octave-qobject.cc (disable_app_nap): Cast "objc_msgSend" to the respective function prototype.
author Markus Mützel <markus.muetzel@gmx.de>
date Fri, 14 Feb 2020 18:26:59 +0100
parents 4563c23597dd
children fbed279b7074
files libgui/src/octave-qobject.cc
diffstat 1 files changed, 16 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/octave-qobject.cc	Fri Feb 14 07:31:16 2020 -0800
+++ b/libgui/src/octave-qobject.cc	Fri Feb 14 18:26:59 2020 +0100
@@ -88,25 +88,29 @@
       == nullptr)
     return;
 
-  process_info = objc_msgSend (reinterpret_cast<id> (process_info_class),
-                               process_info_selector);
+  process_info = reinterpret_cast<id (*) (id, SEL)> (objc_msgSend)
+                   (reinterpret_cast<id> (process_info_class),
+                    process_info_selector);
   if (process_info == nil)
     return;
 
-  reason_string = objc_msgSend (reinterpret_cast<id> (objc_getClass ("NSString")),
-                                sel_getUid ("alloc"));
-  reason_string = objc_msgSend (reason_string,
-                                sel_getUid ("initWithUTF8String:"),
-                                "App Nap causes pause() malfunction");
+  reason_string = reinterpret_cast<id (*) (id, SEL)> (objc_msgSend)
+                    (reinterpret_cast<id> (objc_getClass ("NSString")),
+                     sel_getUid ("alloc"));
+  reason_string = reinterpret_cast<id (*) (id, SEL, const char *)> (objc_msgSend)
+                    (reason_string, sel_getUid ("initWithUTF8String:"),
+                     "App Nap causes pause() malfunction");
 
   // Start an Activity that suppresses App Nap.  This Activity will run for
   // the entire duration of the Octave process.  This is intentional,
   // not a leak.
-  osx_latencycritical_activity = objc_msgSend (process_info,
-      begin_activity_with_options_selector,
-      NSActivityUserInitiatedAllowingIdleSystemSleep
-      | NSActivityLatencyCritical,
-      reason_string);
+  osx_latencycritical_activity =
+    reinterpret_cast<id (*) (id, SEL, unsigned long long, id)> (objc_msgSend)
+      (process_info,
+       begin_activity_with_options_selector,
+       NSActivityUserInitiatedAllowingIdleSystemSleep
+       | NSActivityLatencyCritical,
+       reason_string);
 }
 #endif