[vlc-devel] [PATCH] macosx: move breakpad initialization and allow opt-out

Marvin Scholz epirat07 at gmail.com
Mon May 4 20:40:32 CEST 2020


Move the breakpad initialization right to the start of the program
and do not initialize breakpad if the VLC_DISABLE_BREAKPAD env variable
is set.
---
 bin/darwinvlc.m | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/bin/darwinvlc.m b/bin/darwinvlc.m
index e8b56a08d1..b405c9731f 100644
--- a/bin/darwinvlc.m
+++ b/bin/darwinvlc.m
@@ -116,6 +116,13 @@ BreakpadRef initBreakpad()
  *****************************************************************************/
 int main(int i_argc, const char *ppsz_argv[])
 {
+#ifdef HAVE_BREAKPAD
+    BreakpadRef breakpad = NULL;
+
+    if (!getenv("VLC_DISABLE_BREAKPAD"))
+        breakpad = initBreakpad();
+#endif
+
     /* The so-called POSIX-compliant MacOS X reportedly processes SIGPIPE even
      * if it is blocked in all thread.
      * Note: this is NOT an excuse for not protecting against SIGPIPE. If
@@ -279,10 +286,6 @@ int main(int i_argc, const char *ppsz_argv[])
      * runloop is used. Otherwise, [NSApp run] needs to be called, which setups more stuff
      * before actually starting the loop.
      */
-#ifdef HAVE_BREAKPAD
-    BreakpadRef breakpad;
-    breakpad = initBreakpad();
-#endif
     @autoreleasepool {
         if(NSApp == nil) {
             CFRunLoopRun();
@@ -302,7 +305,8 @@ int main(int i_argc, const char *ppsz_argv[])
     libvlc_release(vlc);
 
 #ifdef HAVE_BREAKPAD
-    BreakpadRelease(breakpad);
+    if (breakpad)
+        BreakpadRelease(breakpad);
 #endif
 
     return ret;
-- 
2.24.1 (Apple Git-126)



More information about the vlc-devel mailing list