diff --git a/ChangeLog b/ChangeLog index 530a0dddd..0bc08908c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-08-06 Richard Frith-Macdonald + + * Source/NSPredicate.m: Reorganize initialisation of scanner to avoid + implicit cast of zero to a va_listt (fix bug #17336) + 2006-08-04 23:26-EDT Gregory John Casamento * Source/NSKeyedArchiver.m: in _encodeObject:forKey: use replacement diff --git a/Source/NSPredicate.m b/Source/NSPredicate.m index 4e24b57b0..aaa415a52 100644 --- a/Source/NSPredicate.m +++ b/Source/NSPredicate.m @@ -52,7 +52,8 @@ } - (id) initWithString: (NSString*)format - args: (NSArray*)args + args: (NSArray*)args; +- (id) initWithString: (NSString*)format vargs: (va_list)vargs; - (id) nextArg; - (BOOL) scanPredicateKeyword: (NSString *) key; @@ -158,8 +159,7 @@ NSPredicate *p; s = [[GSPredicateScanner alloc] initWithString: format - args: args - vargs: 0]; + args: args]; p = [s parse]; RELEASE(s); return p; @@ -172,7 +172,6 @@ NSPredicate *p; s = [[GSPredicateScanner alloc] initWithString: format - args: nil vargs: args]; p = [s parse]; RELEASE(s); @@ -1274,20 +1273,26 @@ - (id) initWithString: (NSString*)format args: (NSArray*)args - vargs: (va_list)vargs { self = [super initWithString: format]; if (self != nil) { _args = [args objectEnumerator]; - if (_args == nil) - { + } + return self; +} + +- (id) initWithString: (NSString*)format + vargs: (va_list)vargs +{ + self = [super initWithString: format]; + if (self != nil) + { #ifdef __va_copy - __va_copy(_vargs, vargs); + __va_copy(_vargs, vargs); #else - _vargs = vargs; + _vargs = vargs; #endif - } } return self; }