diff --git a/ChangeLog b/ChangeLog index 2fc25fdf7..8f101274f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2008-06-07 Richard Frith-Macdonald + + * Source/NSCalendarDate.m: + * Source/NSUserDefaults.m: + * Source/GSPrivate.h: + * Source/NSString.m: + * Source/NSDecimalNumber.m: + * Source/NSDate.m: + Remove GSPrivateDefaultLocale(), as the performance optimisation + doesn't seem worth the additional complexity. + 2008-06-06 Richard Frith-Macdonald * Source/NSTimeZone.m: Monitor to see if the time zone specified in diff --git a/Source/GSPrivate.h b/Source/GSPrivate.h index 376a6d5ee..c92b3aff2 100644 --- a/Source/GSPrivate.h +++ b/Source/GSPrivate.h @@ -318,12 +318,6 @@ GSPrivateCheckTasks(void) GS_ATTRIB_PRIVATE; NSStringEncoding GSPrivateDefaultCStringEncoding() GS_ATTRIB_PRIVATE; -/* Get default locale quickly (usually from cache). - * External apps would cache the locale themselves. - */ -NSDictionary * -GSPrivateDefaultLocale() GS_ATTRIB_PRIVATE; - /* Get one of several standard values. */ BOOL diff --git a/Source/NSCalendarDate.m b/Source/NSCalendarDate.m index 88907e02b..f99eb812a 100644 --- a/Source/NSCalendarDate.m +++ b/Source/NSCalendarDate.m @@ -673,7 +673,7 @@ static inline int getDigits(const char *from, char *to, int limit, BOOL *error) sourceLen = strlen(source); if (locale == nil) { - locale = GSPrivateDefaultLocale(); + locale = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]; } if (fmt == nil) { @@ -2267,7 +2267,7 @@ static void Grow(DescriptionInfo *info, unsigned size) DescriptionInfo info; if (locale == nil) - locale = GSPrivateDefaultLocale(); + locale = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]; if (format == nil) format = [locale objectForKey: NSTimeDateFormatString]; diff --git a/Source/NSDate.m b/Source/NSDate.m index 2692f30c9..71693d69c 100644 --- a/Source/NSDate.m +++ b/Source/NSDate.m @@ -264,7 +264,7 @@ otherTime(NSDate* other) if (locale == nil) { - locale = GSPrivateDefaultLocale(); + locale = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]; } ws = [NSCharacterSet whitespaceAndNewlineCharacterSet]; digits = [NSCharacterSet decimalDigitCharacterSet]; diff --git a/Source/NSDecimalNumber.m b/Source/NSDecimalNumber.m index 8cb100a00..5d6b3b76b 100644 --- a/Source/NSDecimalNumber.m +++ b/Source/NSDecimalNumber.m @@ -35,6 +35,7 @@ #include "Foundation/NSDecimalNumber.h" #include "Foundation/NSException.h" #include "Foundation/NSPortCoder.h" +#include "Foundation/NSUserDefaults.h" #include "GSPrivate.h" @@ -356,8 +357,9 @@ static NSDecimalNumber *one; float v = *(float *)value; if (GSIsNAN(v)) return notANumber; if (GSIsInf(v)) return (v < 0.0) ? minNumber : maxNumber; - s = [[NSString alloc] initWithFormat: @"%g" - locale: GSPrivateDefaultLocale(), (double)v]; + s = [[NSString alloc] initWithFormat: @"%g" locale: + [[NSUserDefaults standardUserDefaults] dictionaryRepresentation], + (double)v]; self = [self initWithString: s]; RELEASE(s); return self; @@ -370,8 +372,9 @@ static NSDecimalNumber *one; double v = *(double *)value; if (GSIsNAN(v)) return notANumber; if (GSIsInf(v)) return (v < 0.0) ? minNumber : maxNumber; - s = [[NSString alloc] initWithFormat: @"%g" - locale: GSPrivateDefaultLocale(), v]; + s = [[NSString alloc] initWithFormat: @"%g" locale: + [[NSUserDefaults standardUserDefaults] dictionaryRepresentation], + v]; self = [self initWithString: s]; RELEASE(s); return self; @@ -413,7 +416,7 @@ static NSDecimalNumber *one; - (id) initWithString: (NSString*)numberValue { return [self initWithString: numberValue - locale: GSPrivateDefaultLocale()]; + locale: [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]]; } - (id) initWithString: (NSString*)numberValue diff --git a/Source/NSString.m b/Source/NSString.m index 2833b49c4..35dbfcee1 100644 --- a/Source/NSString.m +++ b/Source/NSString.m @@ -4384,7 +4384,9 @@ static NSFileManager *fm = nil; else { ret = AUTORELEASE([[self allocWithZone: NSDefaultMallocZone()] - initWithFormat: format locale: GSPrivateDefaultLocale() arguments: ap]); + initWithFormat: format locale: + [[NSUserDefaults standardUserDefaults] dictionaryRepresentation] + arguments: ap]); } va_end(ap); return ret; @@ -4437,7 +4439,8 @@ static NSFileManager *fm = nil; return [self compare: string options: 0 range: ((NSRange){0, [self length]}) - locale: GSPrivateDefaultLocale()]; + locale: + [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]]; } /** @@ -4449,7 +4452,8 @@ static NSFileManager *fm = nil; return [self compare: string options: NSCaseInsensitiveSearch range: ((NSRange){0, [self length]}) - locale: GSPrivateDefaultLocale()]; + locale: + [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]]; } /** diff --git a/Source/NSUserDefaults.m b/Source/NSUserDefaults.m index 2c6f6f386..6422623e9 100644 --- a/Source/NSUserDefaults.m +++ b/Source/NSUserDefaults.m @@ -1872,25 +1872,3 @@ GSPrivateDefaultsFlag(GSUserDefaultFlagType type) return flags[type]; } -/* FIXME ... Slightly faster than - * [[NSUserDefaults standardUserDefaults] dictionaryRepresentation] - * but is it really worthwile? - */ -NSDictionary *GSPrivateDefaultLocale() -{ - NSDictionary *locale; - - if (classLock == nil) - { - [NSUserDefaults standardUserDefaults]; - } - [classLock lock]; - if (sharedDefaults == nil) - { - [NSUserDefaults standardUserDefaults]; - } - locale = [sharedDefaults dictionaryRepresentation]; - [classLock unlock]; - return locale; -} -