diff --git a/ChangeLog b/ChangeLog index 46b7ef3d8..35c3316c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Mon Feb 21 13:44:00 2000 Richard Frith-Macdonald + + * Source/NSRunLoop.m: Use sel_eq() for selector comparison so that + we are guaranteed to match correctly when removing actions from the + runloop. + Fri Feb 6 14:54:00 2000 Manuel Guesdon * Source/NSCalendarDate.m: handle nil and empry string in diff --git a/Headers/gnustep/base/NSPort.h b/Headers/gnustep/base/NSPort.h index a02ee8f19..fb73eb63e 100644 --- a/Headers/gnustep/base/NSPort.h +++ b/Headers/gnustep/base/NSPort.h @@ -62,7 +62,7 @@ extern NSString *NSPortTimeoutException; /* OPENSTEP */ forMode: (NSString*)aMode; - (unsigned) reservedSpaceLength; - (BOOL) sendBeforeDate: (NSDate*)when - components: (NSArray*)components + components: (NSMutableArray*)components from: (NSPort*)receivingPort reserved: (unsigned) length; #endif diff --git a/Source/NSPort.m b/Source/NSPort.m index bceecb396..33f41d825 100644 --- a/Source/NSPort.m +++ b/Source/NSPort.m @@ -154,7 +154,7 @@ NSString *NSPortTimeoutException } - (BOOL) sendBeforeDate: (NSDate*)when - components: (NSArray*)components + components: (NSMutableArray*)components from: (NSPort*)receivingPort reserved: (unsigned) length { diff --git a/Source/NSRunLoop.m b/Source/NSRunLoop.m index a9eea8f50..80fc61497 100644 --- a/Source/NSRunLoop.m +++ b/Source/NSRunLoop.m @@ -321,7 +321,7 @@ static NSComparisonResult aSort(GSIArrayItem i0, GSIArrayItem i1) { GSTimedPerformer *p = array[count]; - if (p->selector == aSelector && p->target == target + if (p->target == target && sel_eq(p->selector, aSelector) && [p->argument isEqual: arg]) { [perf removeObjectAtIndex: count]; @@ -1363,7 +1363,7 @@ id NSDefaultRunLoopMode = @"NSDefaultRunLoopMode"; GSRunLoopPerformer *p; p = GSIArrayItemAtIndex(performers, count).obj; - if (p->selector == aSelector && p->target == target + if (p->target == target && sel_eq(p->selector, aSelector) && p->argument == argument) { GSIArrayRemoveItemAtIndex(performers, count);