On Tue, Dec 02, 2008 at 01:22:13PM +0000, David Chisnall wrote:
> I believe this is a (new) bug in GNUstep, since it did work with the  
> version I was using until a few weeks ago.  I've CC'd this to Gregory  
> so he can have a look.

I investigated the matter further and it's quite obvious what's
going on: NSKeyedUnarchiver, which is used to process the nib, uses
-initWithCoder: self to initialize the objects from the nib.
Now the -initWithCoder method for the NSWindowController class calls
-versionForClassName on its coder and this method isn't
implemented in NSKeyedUnarchiver and thus fails if a decoder of
this type is used. NSCoder won't take the job because it declares
that method a subclassResponsiblity, hence the exception.
The change to use -versionForClassName in the -initWithCoder
method of NSWindowController was introduced into gnustep with
r26956. Few other classes from gui seem to have it. But I'm not
sure whether to blame that change: Shouldn't NSKeyedUnarchiver
actually implement -versionForClassName? I'm going to write a bug
report for this latter. But it's good to know what's going on.

> If you're working on this, then I can send you my initial work (which,  
> sadly, isn't much - I got distracted early on) if you like.  I'd  
> rather see some generally-useful code in EtoileFoundation and a  
> simplified XMPPKit than some extra special-case code in XMPPKit (I may  
> have mentioned before, but the XMPPConnection class is a horrible mess  
> in need of some serious work).

I would like having a look at your ETSocket code, but I'm not
sure whether I'd make good use of it - I'm not yet very savvy
with most of the low level stuff. What I did was write some
stub code that does unicast service discovery via libudns and
glue it into XMPPConnection. The motivation was that I thought
that service discovery (and announcement) would be semantically
coherent enough to outsource them into a proper ServiceKit
someday. 

best regards


Niels

_______________________________________________
Etoile-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-discuss

Répondre à