mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 00:11:26 +00:00
Merge pull request #95 from gnustep/fix_timer_blocks_bug
Fix timer blocks bug
This commit is contained in:
commit
788595363f
1 changed files with 8 additions and 9 deletions
|
@ -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];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue