Author: rfm
Date: Tue Mar 15 20:04:51 2016
New Revision: 39549
URL: http://svn.gna.org/viewcvs/gnustep?rev=39549&view=rev
Log:
on 32bit systems constrain dates to fit
Modified:
libs/base/trunk/Source/NSCalendarDate.m
libs/base/trunk/Source/NSDate.m
libs/base/trunk/Tests/base/NSCalendarDate/test03.m
libs/base/trunk/Tests/base/NSException/basic.m
Modified: libs/base/trunk/Source/NSCalendarDate.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/NSCalendarDate.m?rev=39549&r1=39548&r2=39549&view=diff
==============================================================================
--- libs/base/trunk/Source/NSCalendarDate.m (original)
+++ libs/base/trunk/Source/NSCalendarDate.m Tue Mar 15 20:04:51 2016
@@ -62,6 +62,9 @@
@interface NSGDate : NSObject // Help the compiler
@end
+
+#define DISTANT_FUTURE 63113990400.0
+#define DISTANT_PAST -63113817600.0
static NSString *cformat = @"%Y-%m-%d %H:%M:%S %z";
@@ -1620,6 +1623,16 @@
format: @"[%@-%@] interval is not a number",
NSStringFromClass([self class]), NSStringFromSelector(_cmd)];
}
+#if GS_SIZEOF_VOIDP == 4
+ if (seconds <= DISTANT_PAST)
+ {
+ seconds = DISTANT_PAST;
+ }
+ else if (seconds >= DISTANT_FUTURE)
+ {
+ seconds = DISTANT_FUTURE;
+ }
+#endif
_seconds_since_ref = seconds;
if (_calendar_format == nil)
{
Modified: libs/base/trunk/Source/NSDate.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/NSDate.m?rev=39549&r1=39548&r2=39549&view=diff
==============================================================================
--- libs/base/trunk/Source/NSDate.m (original)
+++ libs/base/trunk/Source/NSDate.m Tue Mar 15 20:04:51 2016
@@ -1412,6 +1412,18 @@
format: @"[%@-%@] interval is not a number",
NSStringFromClass([self class]), NSStringFromSelector(_cmd)];
}
+
+#if GS_SIZEOF_VOIDP == 4
+ if (secs <= DISTANT_PAST)
+ {
+ secs = DISTANT_PAST;
+ }
+ else if (secs >= DISTANT_FUTURE)
+ {
+ secs = DISTANT_FUTURE;
+ }
+#endif
+
_seconds_since_ref = secs;
return self;
}
Modified: libs/base/trunk/Tests/base/NSCalendarDate/test03.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Tests/base/NSCalendarDate/test03.m?rev=39549&r1=39548&r2=39549&view=diff
==============================================================================
--- libs/base/trunk/Tests/base/NSCalendarDate/test03.m (original)
+++ libs/base/trunk/Tests/base/NSCalendarDate/test03.m Tue Mar 15 20:04:51 2016
@@ -37,12 +37,22 @@
{
CREATE_AUTORELEASE_POOL(arp);
- PASS_EQUAL(formattedDaysSince1970(8640000000), @"17-07-23657486",
- "format date for 8640000000");
+ if (sizeof(NSInteger) == 4)
+ {
+ PASS_EQUAL(formattedDaysSince1970(8640000000), @"02-01-4001",
+ "format date for 8640000000");
- PASS_EQUAL(formattedDaysSince1970(2147483651), @"15-07-5881580",
- "format date for 2147483651");
+ PASS_EQUAL(formattedDaysSince1970(2147483651), @"02-01-4001",
+ "format date for 2147483651");
+ }
+ else
+ {
+ PASS_EQUAL(formattedDaysSince1970(8640000000), @"17-07-23657486",
+ "format date for 8640000000");
+ PASS_EQUAL(formattedDaysSince1970(2147483651), @"15-07-5881580",
+ "format date for 2147483651");
+ }
DESTROY(arp);
return 0;
}
Modified: libs/base/trunk/Tests/base/NSException/basic.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Tests/base/NSException/basic.m?rev=39549&r1=39548&r2=39549&view=diff
==============================================================================
--- libs/base/trunk/Tests/base/NSException/basic.m (original)
+++ libs/base/trunk/Tests/base/NSException/basic.m Tue Mar 15 20:04:51 2016
@@ -46,6 +46,7 @@
NSEnumerator *e = [a objectEnumerator];
NSString *s = nil;
+NSLog(@"Got %@", a);
while ((s = [e nextObject]) != nil)
if ([s rangeOfString: @"testAbc"].length > 0)
break;
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs