Merge pull request #95 from gnustep/fix_timer_blocks_bug

Fix timer blocks bug
This commit is contained in:
Fred Kiefer 2020-01-20 09:36:15 +01:00 committed by GitHub
commit 788595363f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -116,7 +116,6 @@ static Class NSDate_class;
userInfo: (id)info
repeats: (BOOL)f
{
_block = nil;
if (ti <= 0.0)
{
ti = 0.0001;
@ -146,18 +145,18 @@ static Class NSDate_class;
return self;
}
- (instancetype) initWithFireDate: (NSDate *)date
interval: (NSTimeInterval)interval
repeats: (BOOL)repeats
- (instancetype) initWithFireDate: (NSDate *)date
interval: (NSTimeInterval)interval
repeats: (BOOL)repeats
block: (GSTimerBlock)block
{
ASSIGN(_block, block);
return [self initWithFireDate: date
interval: interval
target: nil
selector: NULL
userInfo: nil
repeats: repeats];
ASSIGN(_block, block);
}
/**
@ -254,7 +253,7 @@ static Class NSDate_class;
block: block];
[[NSRunLoop currentRunLoop] addTimer: t forMode: NSDefaultRunLoopMode];
RELEASE(t);
return t;
return t;
}
- (void) dealloc
@ -286,12 +285,12 @@ static Class NSDate_class;
else
{
id target;
/* We retain the target so it won't be deallocated while we are using
* it (if this timer gets invalidated while we are firing).
*/
target = RETAIN(_target);
if (_selector == 0)
{
NS_DURING
@ -328,7 +327,7 @@ static Class NSDate_class;
}
RELEASE(target);
}
if (_repeats == NO)
{
[self invalidate];