diff --git a/ChangeLog b/ChangeLog index e83c15102..0d0e10f23 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-08-07 00:13-EDT Gregory John Casamento + + * Source/NSData.m: Correct issue in initWithCoder: and encodeWithCoder: + with encoding data using keyed archiver. + 2006-08-06 Richard Frith-Macdonald * Source/NSPredicate.m: Reorganize initialisation of scanner to avoid diff --git a/Source/NSData.m b/Source/NSData.m index ca1068361..5de22d4fe 100644 --- a/Source/NSData.m +++ b/Source/NSData.m @@ -1511,12 +1511,28 @@ failure: - (void) encodeWithCoder: (NSCoder*)coder { - [coder encodeDataObject: self]; + if([coder allowsKeyedCoding]) + { + [coder encodeObject: self]; + } + else + { + [coder encodeDataObject: self]; + } } - (id) initWithCoder: (NSCoder*)coder { - id obj = [coder decodeDataObject]; + id obj = nil; + + if([coder allowsKeyedCoding]) + { + obj = [coder decodeObject]; + } + else + { + obj = [coder decodeDataObject]; + } if (obj != self) {