mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-20 12:16:40 +00:00
* Headers/Foundation/NSMethodSignature.h:
(NSArgumentInfo): Document limitations of NSArgumentInfo's offset and registier information. Match size for NO_GNUSTEP. (NSMethodSignature): Match ivar name with runtime information. * Source/GSFFCallInvocation.m * Source/GSFFIInvocation.m * Source/NSInvocation.m (gs_method_for_receiver_and_selector) ([-invokeWithTarget:]): Use GSGetMethod instead of deprecated GSGetInstanceMethod and GSGetClassMethod. * Source/NSConnection.m ([-_service_typeForSelector]): Ditto. * Source/NSDistantObject.m ([+respondsToSelector]): Ditto. * Source/NSObject.m ([+instanceMethodSignatureForSelector:]) ([-methodSignatureForSelector:]) ([+descriptionForInstanceMethod], [-descriptionForMethod]): Ditto. * Source/NSProtocolChecker.m ([-methodSignatureForSelector]): Ditto. * Source/NSProxy.m ([+methodSignatureForSelector]) ([-methodSignatureForSelector]): Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19896 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
b75f25ec18
commit
8cd30609bf
10 changed files with 78 additions and 53 deletions
|
@ -59,14 +59,11 @@ gs_method_for_receiver_and_selector (id receiver, SEL sel)
|
|||
{
|
||||
if (receiver)
|
||||
{
|
||||
if (GSObjCIsInstance(receiver))
|
||||
{
|
||||
return GSGetInstanceMethod(GSObjCClass(receiver), sel);
|
||||
}
|
||||
else if (GSObjCIsClass(receiver))
|
||||
{
|
||||
return GSGetClassMethod(receiver, sel);
|
||||
}
|
||||
return GSGetMethod((GSObjCIsInstance(receiver)
|
||||
? GSObjCClass(receiver) : (Class)receiver),
|
||||
sel,
|
||||
GSObjCIsInstance(receiver),
|
||||
YES);
|
||||
}
|
||||
|
||||
return METHOD_NULL;
|
||||
|
@ -330,11 +327,14 @@ GSFFIInvokeWithTargetAndImp(NSInvocation *_inv, id anObject, IMP imp)
|
|||
}
|
||||
else
|
||||
{
|
||||
imp = method_get_imp(GSObjCIsInstance(_target) ?
|
||||
GSGetInstanceMethod(
|
||||
((struct objc_class*)_target)->class_pointer, _selector)
|
||||
: GSGetClassMethod(
|
||||
(struct objc_class*)_target, _selector));
|
||||
GSMethod method;
|
||||
method = GSGetMethod((GSObjCIsInstance(_target)
|
||||
? GSObjCClass(_target)
|
||||
: _target),
|
||||
_selector,
|
||||
GSObjCIsInstance(_target),
|
||||
YES);
|
||||
imp = method_get_imp(method);
|
||||
/*
|
||||
* If fast lookup failed, we may be forwarding or something ...
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue