mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 00:41:02 +00:00
Fix decoding of NSNull (bug #16456)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@22833 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
fbad4fe85f
commit
8a2b40d0de
2 changed files with 11 additions and 2 deletions
|
@ -1,3 +1,7 @@
|
|||
2006-04-28 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSKeyedUnarchiver.m: Fix decoding of NSNull objects.
|
||||
|
||||
2006-04-27 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSURL.m: Fix error unescaping uppercase hex digits.
|
||||
|
|
|
@ -45,6 +45,11 @@
|
|||
#include <Foundation/NSKeyedArchiver.h>
|
||||
#undef _IN_NSKEYEDUNARCHIVER_M
|
||||
|
||||
@interface NilMarker: NSObject
|
||||
@end
|
||||
@implementation NilMarker
|
||||
@end
|
||||
|
||||
/**
|
||||
* An unarchiving error has occurred.
|
||||
*/
|
||||
|
@ -247,7 +252,7 @@ static NSMapTable globalClassMap = 0;
|
|||
|
||||
if (obj == nil)
|
||||
{
|
||||
// Record NSNull marker for decoded object.
|
||||
// Record NilMarker for decoded object.
|
||||
o = GSIArrayItemAtIndex(_objMap, 0).obj;
|
||||
GSIArraySetItemAtIndex(_objMap, (GSIArrayItem)o, index);
|
||||
}
|
||||
|
@ -772,7 +777,7 @@ static NSMapTable globalClassMap = 0;
|
|||
count = [_objects count];
|
||||
GSIArrayInitWithZoneAndCapacity(_objMap, _zone, count);
|
||||
// Add marker for nil object
|
||||
GSIArrayAddItem(_objMap, (GSIArrayItem)((id)[NSNull null]));
|
||||
GSIArrayAddItem(_objMap, (GSIArrayItem)((id)[NilMarker class]));
|
||||
// Add markers for unencoded objects.
|
||||
for (i = 1; i < count; i++)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue