From 99570633985d0e1d081737e7643cd6b478e02628 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Sun, 31 May 2020 11:47:09 +0200 Subject: [PATCH] Protect NSHomeDirectory() call by an NSAutoreleasePool. That may be necessary if preferences are accessed before fl_open_display() was called. --- src/Fl_cocoa.mm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 2c69c6165..b15ec3692 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -4441,12 +4441,14 @@ char *Fl_Darwin_System_Driver::preference_rootnode(Fl_Preferences *prefs, Fl_Pre case Fl_Preferences::USER: { // Find the home directory, but return NULL if components were not found. // If we ever port this to iOS: NSHomeDirectory returns tha location of the app! - const char *e = getenv("HOME"); + const char *e = ::getenv("HOME"); // if $HOME does not exist, try NSHomeDirectory, the Mac way. if ( (e==0L) || (e[0]==0) || (::access(e, F_OK)==-1) ) { + NSAutoreleasePool *localPool = [[NSAutoreleasePool alloc] init]; NSString *nsHome = NSHomeDirectory(); if (nsHome) e = [nsHome UTF8String]; + [localPool release]; } // if NSHomeDirectory does not work, try getpwuid(), the Unix way. if ( (e==0L) || (e[0]==0) || (::access(e, F_OK)==-1) ) { -- GitLab