tweaks to use new GC API

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28051 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2009-03-08 14:34:16 +00:00
parent 38980826a4
commit 3a0afe2e58
8 changed files with 43 additions and 17 deletions

View file

@ -145,7 +145,7 @@ static RunLoopEventType typeForStream(NSStream *aStream)
+ (void) initialize
{
class_ivar_set_gcinvisible (self, "delegate", YES);
GSMakeWeakPointer(self, "delegate");
}
- (void) close
@ -162,13 +162,19 @@ static RunLoopEventType typeForStream(NSStream *aStream)
_delegateValid = NO;
}
- (void) dealloc
- (void) finalize
{
if (_currentStatus != NSStreamStatusNotOpen
&& _currentStatus != NSStreamStatusClosed)
{
[self close];
}
GSAssignZeroingWeakPointer((void**)&_delegate, (void*)0);
}
- (void) dealloc
{
[self finalize];
if (_loops != 0)
{
NSFreeMapTable(_loops);
@ -279,17 +285,25 @@ static RunLoopEventType typeForStream(NSStream *aStream)
|| [self streamStatus] == NSStreamStatusError)
{
_delegateValid = NO;
_delegate = nil;
GSAssignZeroingWeakPointer((void**)&_delegate, (void*)0);
}
else
{
if (delegate)
if (delegate == nil)
{
_delegate = self;
}
if (delegate == self)
{
if (_delegate != nil && _delegate != self)
{
GSAssignZeroingWeakPointer((void**)&_delegate, (void*)0);
}
_delegate = delegate;
}
else
{
_delegate = self;
GSAssignZeroingWeakPointer((void**)&_delegate, (void*)delegate);
}
/* We don't want to send any events the the delegate after the
* stream has been closed.
@ -636,7 +650,7 @@ static RunLoopEventType typeForStream(NSStream *aStream)
if (self == [GSInputStream class])
{
GSObjCAddClassBehavior(self, [GSStream class]);
class_ivar_set_gcinvisible (self, "delegate", YES);
GSMakeWeakPointer(self, "delegate");
}
}
@ -669,7 +683,7 @@ static RunLoopEventType typeForStream(NSStream *aStream)
if (self == [GSOutputStream class])
{
GSObjCAddClassBehavior(self, [GSStream class]);
class_ivar_set_gcinvisible (self, "delegate", YES);
GSMakeWeakPointer(self, "delegate");
}
}
@ -943,7 +957,7 @@ static RunLoopEventType typeForStream(NSStream *aStream)
+ (void) initialize
{
class_ivar_set_gcinvisible (self, "delegate", YES);
GSMakeWeakPointer(self, "delegate");
}
+ (id) serverStreamToAddr: (NSString*)addr port: (NSInteger)port