fix for issue reported by Mathias Bauer <mathias_bauer@gmx.net>

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37611 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2014-01-16 15:15:52 +00:00
parent 80f925978a
commit bdf6dc7e23
3 changed files with 14 additions and 6 deletions

View file

@ -1,11 +1,17 @@
2014-01-16 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSKeyValueObserving.m:
Path info lifetime fixups to avoid crashes of the kind reported
by Mathias Bauer <mathias_bauer@gmx.net>
2014-01-14 Lubos Dolezel <lubos@dolezel.info> 2014-01-14 Lubos Dolezel <lubos@dolezel.info>
* Source/NSBundle.m: * Source/NSBundle.m:
* Headers/Foundation/NSBundle.h: add -resourceURL * Headers/Foundation/NSBundle.h: add -resourceURL
2014-01-14 Richard Frith-Macdonald <rfm@gnu.org> 2014-01-14 Richard Frith-Macdonald <rfm@gnu.org>
* Source\NSPathUtilities.m: * Source/NSPathUtilities.m:
* Documentation\Base.gsdoc: * Documentation/Base.gsdoc:
Add GNUSTEP_DEVELOPER_DIR to allow definition of the native path Add GNUSTEP_DEVELOPER_DIR to allow definition of the native path
to the msys/mingw development tools on windows. to the msys/mingw development tools on windows.
Also improve/fix lookup heuristics. Also improve/fix lookup heuristics.

View file

@ -1096,15 +1096,17 @@ cifframe_callback(ffi_cif *cif, void *retp, void **args, void *user)
return instance; return instance;
} }
/* Locks receiver and returns path info on success, otherwise /* Locks receiver and returns path info on success, otherwise leaves
* leaves receiver munlocked and returns nil. * receiver unlocked and returns nil.
* The returned path info is retained and autoreleased in case something
* removes it from the receiver while it's being used by the caller.
*/ */
- (GSKVOPathInfo*) lockReturningPathInfoForKey: (NSString*)key - (GSKVOPathInfo*) lockReturningPathInfoForKey: (NSString*)key
{ {
GSKVOPathInfo *pathInfo; GSKVOPathInfo *pathInfo;
[iLock lock]; [iLock lock];
pathInfo = (GSKVOPathInfo*)NSMapGet(paths, (void*)key); pathInfo = AUTORELEASE(RETAIN((GSKVOPathInfo*)NSMapGet(paths, (void*)key)));
if (pathInfo == nil) if (pathInfo == nil)
{ {
[iLock unlock]; [iLock unlock];

View file

@ -245,7 +245,7 @@ AC_ARG_ENABLE(environment-config-file,
so that the base library will not use a so that the base library will not use a
config file intended for the gnustep-make config file intended for the gnustep-make
system (and containing unix-style paths system (and containing unix-style paths
which cannot be used by widnows apps). which cannot be used by windows apps).
Normally this should be left at its default Normally this should be left at its default
setting.], setting.],
ac_cv_environment_config_file=$enableval, ac_cv_environment_config_file=$enableval,