diff --git a/ChangeLog b/ChangeLog index baab929d5..ba86ab0b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2003-07-04 Richard Frith-Macdonald + + * Source/NSDistantObject.m: Avoid recursion fetching method signature + 2003-07-03 Richard Frith-Macdonald * Source/NSCalendarDate: ([-initWithString:calendarFormat:]) default diff --git a/Source/NSDistantObject.m b/Source/NSDistantObject.m index adec933fc..ad8fa81dc 100644 --- a/Source/NSDistantObject.m +++ b/Source/NSDistantObject.m @@ -791,6 +791,22 @@ enum } return sig; } + /* + * Simlarly, when we fetch a method signature form the remote end, + * we get a proxy, and when we build a local signature we need to + * ask the proxy for its types ... and must avoid recursion again. + */ + if (sel_eq(aSelector, @selector(methodType))) + { + static NSMethodSignature *sig = nil; + + if (sig == nil) + { + sig = [NSMethodSignature signatureWithObjCTypes: "*@:"]; + RETAIN(sig); + } + return sig; + } if (_protocol != nil) {