diff --git a/ChangeLog b/ChangeLog index f4d58e37b..449df6db5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16,6 +16,7 @@ Fri Dec 18 18:15:00 1998 Richard Frith-Macdonald NSGString.m: ditto NSString.m: ditto NSConcreteNumber.m: Added ([-replacementObjectForPortCoder:]) + NSCoder.m: Cope nicely with encode/decode of nil property-list. Thu Dec 17 16:12:18 1998 Matthias Klose diff --git a/Source/NSCoder.m b/Source/NSCoder.m index 170434e01..8f4ec7d5e 100644 --- a/Source/NSCoder.m +++ b/Source/NSCoder.m @@ -117,8 +117,8 @@ - (void) encodePropertyList: (id)plist { - id anObject = [NSSerializer serializePropertyList: plist]; - [self encodeValueOfObjCType:@encode(id) at: &anObject]; + id anObject = plist ? [NSSerializer serializePropertyList: plist] : nil; + [self encodeValueOfObjCType: @encode(id) at: &anObject]; } - (void) encodePoint: (NSPoint)point @@ -200,10 +200,15 @@ { id o; id d; - [self decodeValueOfObjCType:@encode(id) at:&d]; - o = [NSDeserializer deserializePropertyListFromData: d - mutableContainers: NO]; - [d release]; + [self decodeValueOfObjCType: @encode(id) at: &d]; + if (d) + { + o = [NSDeserializer deserializePropertyListFromData: d + mutableContainers: NO]; + [d release]; + } + else + o = nil; return o; }