mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 00:11:26 +00:00
Various bugfixes, portability fixes, and optimisations.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@22576 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
3afbb2f09d
commit
7d3f438da0
15 changed files with 879 additions and 369 deletions
|
@ -1476,12 +1476,12 @@ GSObjCAddClassBehavior(Class receiver, Class behavior)
|
|||
#endif
|
||||
|
||||
|
||||
/** Deprecated ... use GSObjCGetValue() */
|
||||
/** Deprecated ... use GSObjCGetVal() */
|
||||
id
|
||||
GSGetValue(NSObject *self, NSString *key, SEL sel,
|
||||
const char *type, unsigned size, int offset)
|
||||
{
|
||||
return GSObjCGetValue(self, key, sel, type, size, offset);
|
||||
return GSObjCGetVal(self, [key UTF8String], sel, type, size, offset);
|
||||
}
|
||||
/**
|
||||
* This is used internally by the key-value coding methods, to get a
|
||||
|
@ -1494,7 +1494,7 @@ GSGetValue(NSObject *self, NSString *key, SEL sel,
|
|||
* to get a value.
|
||||
*/
|
||||
id
|
||||
GSObjCGetValue(NSObject *self, NSString *key, SEL sel,
|
||||
GSObjCGetVal(NSObject *self, const char *key, SEL sel,
|
||||
const char *type, unsigned size, int offset)
|
||||
{
|
||||
if (sel != 0)
|
||||
|
@ -1510,7 +1510,7 @@ GSObjCGetValue(NSObject *self, NSString *key, SEL sel,
|
|||
}
|
||||
if (type == NULL)
|
||||
{
|
||||
return [self valueForUndefinedKey: key];
|
||||
return [self valueForUndefinedKey: [NSString stringWithUTF8String: key]];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1792,13 +1792,22 @@ GSObjCGetValue(NSObject *self, NSString *key, SEL sel,
|
|||
return val;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Calls GSObjCGetVal()
|
||||
*/
|
||||
id
|
||||
GSObjCGetValue(NSObject *self, NSString *key, SEL sel,
|
||||
const char *type, unsigned size, int offset)
|
||||
{
|
||||
return GSObjCGetVal(self, [key UTF8String], sel, type, size, offset);
|
||||
}
|
||||
|
||||
/** Deprecated ... use GSObjCSetValue() */
|
||||
/** Deprecated ... use GSObjCSetVal() */
|
||||
void
|
||||
GSSetValue(NSObject *self, NSString *key, id val, SEL sel,
|
||||
const char *type, unsigned size, int offset)
|
||||
{
|
||||
GSObjCSetValue(self, key, val, sel, type, size, offset);
|
||||
GSObjCSetVal(self, [key UTF8String], val, sel, type, size, offset);
|
||||
}
|
||||
/**
|
||||
* This is used internally by the key-value coding methods, to set a
|
||||
|
@ -1811,8 +1820,8 @@ GSSetValue(NSObject *self, NSString *key, id val, SEL sel,
|
|||
* to set a value.
|
||||
*/
|
||||
void
|
||||
GSObjCSetValue(NSObject *self, NSString *key, id val, SEL sel,
|
||||
const char *type, unsigned size, int offset)
|
||||
GSObjCSetVal(NSObject *self, const char *key, id val, SEL sel,
|
||||
const char *type, unsigned size, int offset)
|
||||
{
|
||||
static NSNull *null = nil;
|
||||
|
||||
|
@ -1833,11 +1842,12 @@ GSObjCSetValue(NSObject *self, NSString *key, id val, SEL sel,
|
|||
}
|
||||
if (type == NULL)
|
||||
{
|
||||
[self setValue: val forUndefinedKey: key];
|
||||
[self setValue: val
|
||||
forUndefinedKey: [NSString stringWithUTF8String: key]];
|
||||
}
|
||||
else if ((val == nil || val == null) && *type != _C_ID && *type != _C_CLASS)
|
||||
{
|
||||
[self setNilValueForKey: key];
|
||||
[self setNilValueForKey: [NSString stringWithUTF8String: key]];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2121,6 +2131,15 @@ GSObjCSetValue(NSObject *self, NSString *key, id val, SEL sel,
|
|||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Calls GSObjCSetVal()
|
||||
*/
|
||||
void
|
||||
GSObjCSetValue(NSObject *self, NSString *key, id val, SEL sel,
|
||||
const char *type, unsigned size, int offset)
|
||||
{
|
||||
GSObjCSetVal(self, [key UTF8String], val, sel, type, size, offset);
|
||||
}
|
||||
|
||||
|
||||
/** Returns an autoreleased array of subclasses of Class cls, including
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue