From 24251c643912673ebccf83d2ddd7e04007cfe4e4 Mon Sep 17 00:00:00 2001 From: gcasa Date: Mon, 7 Aug 2006 04:14:58 +0000 Subject: [PATCH] Correct issue in initWithCoder: and encodeWithCoder: in NSData which was causing problems with keyed coding. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@23211 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 5 +++++ Source/NSData.m | 20 ++++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) 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) {