mirror of
https://github.com/gnustep/libs-steptalk.git
synced 2025-02-19 01:40:44 +00:00
Removed STMethodSignatureForSelector - not-portable to OSX
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@20329 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
9d91c09b7f
commit
8417ff6e26
7 changed files with 66 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
|||
2004 Nov 9 Stefan Urbanek
|
||||
|
||||
* Remove STMethodSignatureForSelector as it was deprecated because of
|
||||
inportability to OSX.
|
||||
|
||||
2004 Sep 6 Stefan Urbanek
|
||||
|
||||
* stshell: fix for compiler
|
||||
|
|
|
@ -42,5 +42,8 @@ extern NSArray *STAllObjectiveCSelectors(void);
|
|||
extern NSValue *STValueFromSelector(SEL sel);
|
||||
extern SEL STSelectorFromValue(NSValue *val);
|
||||
extern SEL STSelectorFromString(NSString *aString);
|
||||
extern NSMethodSignature *STConstructMethodSignatureForSelector(SEL sel);
|
||||
|
||||
/* Deprecated - remove */
|
||||
extern NSMethodSignature *STMethodSignatureForSelector(SEL sel);
|
||||
|
||||
|
|
|
@ -37,8 +37,10 @@
|
|||
#import <Foundation/NSString.h>
|
||||
#import <Foundation/NSValue.h>
|
||||
|
||||
#define SELECTOR_TYPES_COUNT 6
|
||||
#define SELECTOR_TYPES_COUNT 10
|
||||
|
||||
/* Predefined default selector types up to 10 arguments for fast creation.
|
||||
It should be faster than manually constructing the string. */
|
||||
static const char *selector_types[] =
|
||||
{
|
||||
"@8@0:4",
|
||||
|
@ -47,6 +49,10 @@ static const char *selector_types[] =
|
|||
"@20@0:4@8@12@16",
|
||||
"@24@0:4@8@12@16@20",
|
||||
"@28@0:4@8@12@16@20@24"
|
||||
"@32@0:4@8@12@16@20@24@28"
|
||||
"@36@0:4@8@12@16@20@24@28@32"
|
||||
"@40@0:4@8@12@16@20@24@28@32@36"
|
||||
"@44@0:4@8@12@16@20@24@28@32@36@40"
|
||||
};
|
||||
|
||||
NSMutableDictionary *STAllObjectiveCClasses(void)
|
||||
|
@ -162,6 +168,8 @@ SEL STCreateTypedSelector(SEL sel)
|
|||
|
||||
SEL newSel;
|
||||
|
||||
NSLog(@"STCreateTypedSelector is deprecated.");
|
||||
|
||||
ptr = name;
|
||||
|
||||
while(*ptr)
|
||||
|
@ -194,10 +202,51 @@ SEL STCreateTypedSelector(SEL sel)
|
|||
return newSel;
|
||||
}
|
||||
|
||||
NSMethodSignature *STConstructMethodSignatureForSelector(SEL sel)
|
||||
{
|
||||
const char *name = sel_get_name(sel);
|
||||
const char *ptr;
|
||||
const char *types = (const char *)0;
|
||||
int argc = 0;
|
||||
|
||||
ptr = name;
|
||||
|
||||
while(*ptr)
|
||||
{
|
||||
if(*ptr == ':')
|
||||
{
|
||||
argc ++;
|
||||
}
|
||||
ptr++;
|
||||
}
|
||||
|
||||
if( argc < SELECTOR_TYPES_COUNT )
|
||||
{
|
||||
NSDebugLLog(@"STSending",
|
||||
@"registering selector '%s' "
|
||||
@"with %i arguments, types:'%s'",
|
||||
name,argc,selector_types[argc]);
|
||||
|
||||
types = selector_types[argc];
|
||||
}
|
||||
|
||||
if(!types)
|
||||
{
|
||||
[NSException raise:STInternalInconsistencyException
|
||||
format:@"Unable to construct types for selector '%s'",
|
||||
name];
|
||||
return 0;
|
||||
}
|
||||
|
||||
return [NSMethodSignature signatureWithObjCTypes:types];
|
||||
}
|
||||
|
||||
NSMethodSignature *STMethodSignatureForSelector(SEL sel)
|
||||
{
|
||||
const char *types;
|
||||
|
||||
NSLog(@"STMethodSignatureForSelector is deprecated.");
|
||||
|
||||
types = sel_get_type(sel);
|
||||
|
||||
if(!types)
|
||||
|
|
|
@ -106,7 +106,7 @@ some other, more clever mechanism. */
|
|||
|
||||
if(!signature)
|
||||
{
|
||||
signature = STMethodSignatureForSelector(sel);
|
||||
signature = STConstructMethodSignatureForSelector(sel);
|
||||
}
|
||||
|
||||
return signature;
|
||||
|
|
|
@ -62,7 +62,7 @@ STUndefinedObject *STNil = nil;
|
|||
|
||||
if(!signature)
|
||||
{
|
||||
signature = STMethodSignatureForSelector(sel);
|
||||
signature = STConstructMethodSignatureForSelector(sel);
|
||||
}
|
||||
|
||||
return signature;
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2004 Nov 9 Stefan Urbanek
|
||||
|
||||
* Remove STMethodSignatureForSelector as it was deprecated because of
|
||||
inportability to OSX.
|
||||
|
||||
2004 Jul 10 Stefan Urbanek
|
||||
|
||||
* Applied patch from Alexander V. Diemand (fixed bug #9595) - fixed
|
||||
|
|
|
@ -112,7 +112,7 @@
|
|||
|
||||
if(!signature)
|
||||
{
|
||||
signature = STMethodSignatureForSelector(sel);
|
||||
signature = STConstructMethodSignatureForSelector(sel);
|
||||
}
|
||||
|
||||
return signature;
|
||||
|
|
Loading…
Reference in a new issue