* 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:
David Ayers 2004-08-20 17:53:16 +00:00
parent b75f25ec18
commit 8cd30609bf
10 changed files with 78 additions and 53 deletions

View file

@ -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 ...
*/