summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2020-05-31 11:47:09 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2020-05-31 11:47:34 +0200
commit99570633985d0e1d081737e7643cd6b478e02628 (patch)
tree26da909184c019fd5e8c01dd0e994c9fff7acff1
parentadb2a719d4f6a819be34e98633afdd855f3de2b1 (diff)
Protect NSHomeDirectory() call by an NSAutoreleasePool.
That may be necessary if preferences are accessed before fl_open_display() was called.
-rw-r--r--src/Fl_cocoa.mm4
1 files changed, 3 insertions, 1 deletions
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) ) {