backport bugfix

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/branches/stable@26686 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2008-06-18 13:13:42 +00:00
parent 65ea44cbd6
commit 75124f39cc
2 changed files with 10 additions and 9 deletions

View file

@ -1,3 +1,7 @@
2008-06-18 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSConnection.m: backport fix from trunk.
2008-06-17 Richard Frith-Macdonald <rfm@gnu.org> 2008-06-17 Richard Frith-Macdonald <rfm@gnu.org>
* Version 1.16.1 * Version 1.16.1

View file

@ -91,9 +91,10 @@ static inline NSRunLoop *
GSRunLoopForThread(NSThread *aThread) GSRunLoopForThread(NSThread *aThread)
{ {
GSRunLoopThreadInfo *info = GSRunLoopInfoForThread(aThread); GSRunLoopThreadInfo *info = GSRunLoopInfoForThread(aThread);
if (info == nil || info->loop == nil) if (info == nil || info->loop == nil)
{ {
if (aThread == nil) if (aThread == nil || aThread == GSCurrentThread())
{ {
return [NSRunLoop currentRunLoop]; return [NSRunLoop currentRunLoop];
} }
@ -1886,8 +1887,7 @@ static void retEncoder (DOContext *ctxt)
const char *type; const char *type;
retval_t retframe; retval_t retframe;
DOContext ctxt; DOContext ctxt;
NSThread *thread = GSCurrentThread(); NSRunLoop *runLoop = GSRunLoopForThread(nil);
NSRunLoop *runLoop = GSRunLoopForThread(thread);
memset(&ctxt, 0, sizeof(ctxt)); memset(&ctxt, 0, sizeof(ctxt));
ctxt.connection = self; ctxt.connection = self;
@ -2030,8 +2030,7 @@ static void retEncoder (DOContext *ctxt)
BOOL needsResponse; BOOL needsResponse;
const char *type; const char *type;
DOContext ctxt; DOContext ctxt;
NSThread *thread = GSCurrentThread(); NSRunLoop *runLoop = GSRunLoopForThread(nil);
NSRunLoop *runLoop = GSRunLoopForThread(thread);
if ([_runLoops indexOfObjectIdenticalTo: runLoop] == NSNotFound) if ([_runLoops indexOfObjectIdenticalTo: runLoop] == NSNotFound)
{ {
@ -2494,8 +2493,7 @@ static void callEncoder (DOContext *ctxt)
*/ */
NS_DURING NS_DURING
{ {
NSThread *thread = GSCurrentThread(); NSRunLoop *runLoop = GSRunLoopForThread(nil);
NSRunLoop *runLoop = GSRunLoopForThread(thread);
NSParameterAssert (_isValid); NSParameterAssert (_isValid);
if ([_runLoops indexOfObjectIdenticalTo: runLoop] == NSNotFound) if ([_runLoops indexOfObjectIdenticalTo: runLoop] == NSNotFound)
@ -2761,8 +2759,7 @@ static void callEncoder (DOContext *ctxt)
NSTimeInterval last_interval = 0.0001; NSTimeInterval last_interval = 0.0001;
NSTimeInterval delay_interval = last_interval; NSTimeInterval delay_interval = last_interval;
NSDate *delay_date = nil; NSDate *delay_date = nil;
NSThread *thread = GSCurrentThread(); NSRunLoop *runLoop = GSRunLoopForThread(nil);
NSRunLoop *runLoop = GSRunLoopForThread(thread);
BOOL isLocked = NO; BOOL isLocked = NO;
/* /*