mirror of
https://github.com/gnustep/libs-base.git
synced 2025-06-02 01:21:08 +00:00
Update and fix for bug #25004
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27257 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
219c8760e9
commit
141bc74c1f
5 changed files with 28 additions and 18 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,7 +1,15 @@
|
||||||
|
2008-12-08 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
|
* Source/NSKeyedUnarchiver.m: ([versionForClassName:]) implement
|
||||||
|
* Source/NSUnarchiver.m:
|
||||||
|
* Source/NSCoder.m:
|
||||||
|
* Headers/Foundation/NSCoder.h:
|
||||||
|
Update method to return NSInteger.
|
||||||
|
|
||||||
2008-12-07 Adam Fedor <fedor@gnu.org>
|
2008-12-07 Adam Fedor <fedor@gnu.org>
|
||||||
|
|
||||||
* configure.ac: Add custom objc library check from gnustep-make (So we can find
|
* configure.ac: Add custom objc library check from gnustep-make
|
||||||
libobjc in LOCAL domain).
|
(So we can find libobjc in LOCAL domain).
|
||||||
|
|
||||||
2008-12-07 Richard Frith-Macdonald <rfm@gnu.org>
|
2008-12-07 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
|
|
|
@ -222,7 +222,7 @@ extern "C" {
|
||||||
* class (decoded). Version comes from [NSObject -getVersion].
|
* class (decoded). Version comes from [NSObject -getVersion].
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
- (unsigned int) versionForClassName: (NSString*)className;
|
- (NSInteger) versionForClassName: (NSString*)className;
|
||||||
|
|
||||||
#if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
|
#if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -65,10 +65,10 @@
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (unsigned int) versionForClassName: (NSString*)className
|
- (NSInteger) versionForClassName: (NSString*)className
|
||||||
{
|
{
|
||||||
[self subclassResponsibility: _cmd];
|
[self subclassResponsibility: _cmd];
|
||||||
return NSNotFound;
|
return (NSInteger)NSNotFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Encoding Data
|
// Encoding Data
|
||||||
|
@ -293,8 +293,6 @@
|
||||||
|
|
||||||
- (unsigned int) systemVersion
|
- (unsigned int) systemVersion
|
||||||
{
|
{
|
||||||
//PENDING(ABR)- should probably mult major version by 1000, not 100, since,
|
|
||||||
// e.g., 2.0.0 is going to be <1000
|
|
||||||
return (((GNUSTEP_BASE_MAJOR_VERSION * 100)
|
return (((GNUSTEP_BASE_MAJOR_VERSION * 100)
|
||||||
+ GNUSTEP_BASE_MINOR_VERSION) * 100) + GNUSTEP_BASE_SUBMINOR_VERSION;
|
+ GNUSTEP_BASE_MINOR_VERSION) * 100) + GNUSTEP_BASE_SUBMINOR_VERSION;
|
||||||
}
|
}
|
||||||
|
|
|
@ -828,6 +828,10 @@ static NSMapTable globalClassMap = 0;
|
||||||
_delegate = delegate; // Not retained.
|
_delegate = delegate; // Not retained.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSInteger) versionForClassName: (NSString*)className
|
||||||
|
{
|
||||||
|
return 0; // Not used for keyed unarchiving.
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation NSObject (NSKeyedUnarchiverDelegate)
|
@implementation NSObject (NSKeyedUnarchiverDelegate)
|
||||||
|
|
|
@ -283,7 +283,7 @@ static NSMutableDictionary *clsDict; /* Class information */
|
||||||
@interface NSUnarchiverObjectInfo : NSUnarchiverClassInfo
|
@interface NSUnarchiverObjectInfo : NSUnarchiverClassInfo
|
||||||
{
|
{
|
||||||
@public
|
@public
|
||||||
unsigned version;
|
NSInteger version;
|
||||||
NSUnarchiverClassInfo *overrides;
|
NSUnarchiverClassInfo *overrides;
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
@ -747,17 +747,17 @@ static Class NSDataMallocClass;
|
||||||
classInfo = [objDict objectForKey: className];
|
classInfo = [objDict objectForKey: className];
|
||||||
if (classInfo == nil)
|
if (classInfo == nil)
|
||||||
{
|
{
|
||||||
classInfo = [NSUnarchiverObjectInfo
|
classInfo = [NSUnarchiverObjectInfo newWithName: className];
|
||||||
newWithName: className];
|
|
||||||
c = NSClassFromString(className);
|
c = NSClassFromString(className);
|
||||||
/*
|
/*
|
||||||
* Show a warning, if the class name that's being used to build the
|
* Show a warning, if the class name that's being used to
|
||||||
* class causes NSClassFromString to return nil. This means that the
|
* build the class causes NSClassFromString to return nil.
|
||||||
* class is unknown to the runtime.
|
* This means that the class is unknown to the runtime.
|
||||||
*/
|
*/
|
||||||
if(c == nil)
|
if (c == nil)
|
||||||
{
|
{
|
||||||
NSLog(@"Got nil when trying to unarchive class %s",className);
|
NSLog(@"Got nil when trying to unarchive class %s",
|
||||||
|
className);
|
||||||
}
|
}
|
||||||
[classInfo mapToClass: c withName: className];
|
[classInfo mapToClass: c withName: className];
|
||||||
[objDict setObject: classInfo forKey: className];
|
[objDict setObject: classInfo forKey: className];
|
||||||
|
@ -768,7 +768,7 @@ static Class NSDataMallocClass;
|
||||||
c = classInfo->class;
|
c = classInfo->class;
|
||||||
}
|
}
|
||||||
RELEASE(className);
|
RELEASE(className);
|
||||||
classInfo->version = cver;
|
classInfo->version = (NSInteger)cver;
|
||||||
GSIArrayAddItem(clsMap, (GSIArrayItem)((id)classInfo));
|
GSIArrayAddItem(clsMap, (GSIArrayItem)((id)classInfo));
|
||||||
*(Class*)address = mapClassObject(classInfo);
|
*(Class*)address = mapClassObject(classInfo);
|
||||||
/*
|
/*
|
||||||
|
@ -1300,14 +1300,14 @@ static Class NSDataMallocClass;
|
||||||
format: @"object to be replaced does not exist"];
|
format: @"object to be replaced does not exist"];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (unsigned) versionForClassName: (NSString*)className
|
- (NSInteger) versionForClassName: (NSString*)className
|
||||||
{
|
{
|
||||||
NSUnarchiverObjectInfo *info;
|
NSUnarchiverObjectInfo *info;
|
||||||
|
|
||||||
info = [objDict objectForKey: className];
|
info = [objDict objectForKey: className];
|
||||||
if (info == nil)
|
if (info == nil)
|
||||||
{
|
{
|
||||||
return NSNotFound;
|
return (NSInteger)NSNotFound;
|
||||||
}
|
}
|
||||||
return info->version;
|
return info->version;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue