diff --git a/ChangeLog b/ChangeLog index b9b940ce8..535ee055b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2001-01-31 Richard Frith-Macdonald + + * Source/NSDate.m: pass dates over DO bycopy unless explicitly byref. + * Source/NSTimeZone.m: pass time zones over DO bycopy unless + explicitly byref. + 2001-01-30 Michael Hanni * Source/.cvsignore: tweaked to cover a few more items. diff --git a/Source/NSDate.m b/Source/NSDate.m index 89938ec0f..a98eaae4f 100644 --- a/Source/NSDate.m +++ b/Source/NSDate.m @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #if HAVE_SYS_TIME_H @@ -880,11 +881,11 @@ GSTimeNow() return abstractClass; } -- (id) replacementObjectForPortCoder: (NSPortCoder*)aRmc +- (id) replacementObjectForPortCoder: (NSPortCoder*)aCoder { - /* Make sure that Connection's always send us bycopy, - i.e. as our own class, not a Proxy class. */ - return self; + if ([aCoder isByref] == NO) + return self; + return [super replacementObjectForPortCoder: aCoder]; } - (void) encodeWithCoder: (NSCoder*)coder diff --git a/Source/NSTimeZone.m b/Source/NSTimeZone.m index 27c00562f..e25edb13b 100644 --- a/Source/NSTimeZone.m +++ b/Source/NSTimeZone.m @@ -63,6 +63,7 @@ #include #include #include +#include #define NOID #include "tzfile.h" @@ -1109,6 +1110,13 @@ static NSMapTable *absolutes = 0; return [self subclassResponsibility: _cmd]; } +- (id) replacementObjectForPortCoder: (NSPortCoder*)aCoder +{ + if ([aCoder isByref] == NO) + return self; + return [super replacementObjectForPortCoder: aCoder]; +} + - (int) secondsFromGMT { return [self secondsFromGMTForDate: [NSDate date]];