Author: rfm
Date: Tue May 26 14:10:20 2015
New Revision: 38555
URL: http://svn.gna.org/viewcvs/gnustep?rev=38555&view=rev
Log:
fixups to pass regression tests again
Modified:
libs/base/trunk/ChangeLog
libs/base/trunk/Source/NSDateFormatter.m
libs/base/trunk/Tests/base/NSDateFormatter/general.m
Modified: libs/base/trunk/ChangeLog
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/ChangeLog?rev=38555&r1=38554&r2=38555&view=diff
==============================================================================
--- libs/base/trunk/ChangeLog (original)
+++ libs/base/trunk/ChangeLog Tue May 26 14:10:20 2015
@@ -9,6 +9,8 @@
* GSString.m: Fix sign extension bug
* Source/NSXMLParser.m: Update to more exactly match OSX behavior
+ * Source/NSDateFormatter.m: attempt to fix functionality broken
+ by additional call to set date format during reset.
2015-05-25 Richard Frith-Macdonald <[email protected]>
Modified: libs/base/trunk/Source/NSDateFormatter.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/NSDateFormatter.m?rev=38555&r1=38554&r2=38555&view=diff
==============================================================================
--- libs/base/trunk/Source/NSDateFormatter.m (original)
+++ libs/base/trunk/Source/NSDateFormatter.m Tue May 26 14:10:20 2015
@@ -115,7 +115,8 @@
[self _resetUDateFormat];
/* According to Apple docs, default behavior is NSDateFormatterBehavior10_4 on
- 10.5 and later. Yeah, go figure. */
+ * 10.5 and later. Yeah, go figure.
+ */
#if GS_USE_ICU == 1
{
int length;
@@ -351,7 +352,7 @@
int32_t pPos = 0;
textLength = [string length];
- text = NSZoneMalloc ([self zone], sizeof(UChar) * textLength);
+ text = malloc(sizeof(UChar) * textLength);
if (text == NULL)
return nil;
@@ -362,7 +363,7 @@
result =
[NSDate dateWithTimeIntervalSince1970: (NSTimeInterval)(date / 1000.0)];
- NSZoneFree ([self zone], text);
+ free(text);
return result;
#else
return nil;
@@ -375,17 +376,16 @@
NSString *result;
int32_t length;
unichar *string;
- NSZone *z = [self zone];
UDate udate = [date timeIntervalSince1970] * 1000.0;
UErrorCode err = U_ZERO_ERROR;
length = udat_format (internal->_formatter, udate, NULL, 0, NULL, &err);
- string = NSZoneMalloc (z, sizeof(UChar) * (length + 1));
+ string = malloc(sizeof(UChar) * (length + 1));
err = U_ZERO_ERROR;
udat_format (internal->_formatter, udate, string, length, NULL, &err);
if (U_SUCCESS(err))
{
- result = AUTORELEASE([[NSString allocWithZone: z]
+ result = AUTORELEASE([[NSString allocWithZone: NSDefaultMallocZone()]
initWithBytesNoCopy: string
length: length * sizeof(UChar)
encoding: NSUnicodeStringEncoding
@@ -393,7 +393,7 @@
return result;
}
- NSZoneFree (z, string);
+ free(string);
return nil;
#else
return nil;
@@ -415,12 +415,12 @@
int32_t patternLength;
patternLength = [string length];
- pattern = NSZoneMalloc ([self zone], sizeof(UChar) * patternLength);
+ pattern = malloc(sizeof(UChar) * patternLength);
[string getCharacters: pattern range: NSMakeRange(0, patternLength)];
udat_applyPattern (internal->_formatter, 0, pattern, patternLength);
- NSZoneFree ([self zone], pattern);
+ free(pattern);
#endif
ASSIGNCOPY(_dateFormat, string);
}
@@ -965,7 +965,9 @@
- (void) _resetUDateFormat
{
#if GS_USE_ICU == 1
+ UChar *pat;
UChar *tzID;
+ int32_t patLength;
int32_t tzIDLength;
UErrorCode err = U_ZERO_ERROR;
@@ -973,25 +975,32 @@
udat_close (internal->_formatter);
tzIDLength = [[internal->_tz name] length];
- tzID = NSZoneMalloc ([self zone], sizeof(UChar) * tzIDLength);
- [[internal->_tz name] getCharacters: tzID range: NSMakeRange (0,
tzIDLength)];
-
+ tzID = malloc(sizeof(UChar) * tzIDLength);
+ [[internal->_tz name] getCharacters: tzID];
+
+ if (nil == self->_dateFormat)
+ {
+ patLength = 0;
+ pat = 0;
+ }
+ else
+ {
+ patLength = [self->_dateFormat length];
+ pat = malloc(sizeof(UChar) * patLength);
+ [self->_dateFormat getCharacters: pat];
+ }
internal->_formatter = udat_open (NSToUDateFormatStyle(internal->_timeStyle),
NSToUDateFormatStyle(internal->_dateStyle),
[[internal->_locale localeIdentifier] UTF8String],
tzID,
tzIDLength,
- NULL,
- 0,
+ pat,
+ patLength,
&err);
if (U_FAILURE(err))
internal->_formatter = NULL;
- if (nil != self->_dateFormat)
- {
- // Set the date format to the user provide one
- [self setDateFormat: _dateFormat];
- }
- NSZoneFree ([self zone], tzID);
+ if (0 != pat) free(pat);
+ free(tzID);
#else
return;
#endif
@@ -1014,12 +1023,10 @@
NSString *string = [array objectAtIndex: idx];
length = [string length];
- value = NSZoneMalloc ([self zone], sizeof(unichar) * length);
+ value = malloc(sizeof(unichar) * length);
[string getCharacters: value range: NSMakeRange(0, length)];
-
udat_setSymbols (internal->_formatter, symbol, idx, value, length, &err);
-
- NSZoneFree ([self zone], value);
+ free(value);
++idx;
}
@@ -1051,12 +1058,13 @@
udat_getSymbols (internal->_formatter, symbol, idx, value, length, &err);
if (U_SUCCESS(err))
{
- str = AUTORELEASE([[NSString allocWithZone: z]
+ str = [[NSString allocWithZone: z]
initWithBytesNoCopy: value
length: length * sizeof(unichar)
encoding: NSUnicodeStringEncoding
- freeWhenDone: YES]);
+ freeWhenDone: YES];
[mArray addObject: str];
+ RELEASE(str);
}
else
{
Modified: libs/base/trunk/Tests/base/NSDateFormatter/general.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Tests/base/NSDateFormatter/general.m?rev=38555&r1=38554&r2=38555&view=diff
==============================================================================
--- libs/base/trunk/Tests/base/NSDateFormatter/general.m (original)
+++ libs/base/trunk/Tests/base/NSDateFormatter/general.m Tue May 26
14:10:20 2015
@@ -1,6 +1,7 @@
#import <Foundation/NSCalendar.h>
#import <Foundation/NSDate.h>
#import <Foundation/NSDateFormatter.h>
+#import <Foundation/NSDictionary.h>
#import <Foundation/NSLocale.h>
#import <Foundation/NSTimeZone.h>
#import "Testing.h"
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs