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

Reply via email to