diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2020-05-31 11:47:09 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2020-05-31 11:47:34 +0200 |
| commit | 99570633985d0e1d081737e7643cd6b478e02628 (patch) | |
| tree | 26da909184c019fd5e8c01dd0e994c9fff7acff1 | |
| parent | adb2a719d4f6a819be34e98633afdd855f3de2b1 (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.mm | 4 |
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) ) { |
