bug-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ProjectCenter segfault


From: Stefan Urbanek
Subject: Re: ProjectCenter segfault
Date: Fri, 11 Jul 2003 07:57:09 +0200

On 2003-07-11 01:50:49 +0200 Alexander Malmberg <alexander@malmberg.org> wrote:

Benhur Stein wrote:
I'm getting those too. I think they are related to the last changes in base
to better support DO. It seems that message forwarding is not always working
well.
[snip]

I've noticed what might be a related problem in some apps. It seems that
combining forwarding with -performSelector: no longer works unless the
performed method has a return type (id). There seem to be issues with
using untyped selectors (although there is an id return from
-performSelector:, the forwarding code can't know this). Haven't looked
closely at it yet, though.


If you want to forward, you hav eto know types. You should get types from 
object which are you forwarding to, however -base used to use random types from 
objc runtime.


It's also pickier now than before. Forwarding won't work at all unless
you implement -methodSignatureForSelector:.


Sure you have to. Even in apple docs you have higlighted text in a box saying:

Note: To respond to methods that your object does not itself recognize, you 
must override methodSignatureForSelector: in addition to forwardInvocation:. 
The mechanism for forwarding messages uses information obtained from 
methodSignatureForSelector: to create the NSInvocation object to be forwarded. 
Your overriding method must provide an appropriate method signature for the 
given selector, either by preformulating one or by asking another object for 
one.

And it is logical. I think that the latest change, and usage of selector from 
object to which invocation is being sent, revealed other bugs in GS (think of 
it as Good).

Stefan





reply via email to

[Prev in Thread] Current Thread [Next in Thread]