discuss-gnustep
[Top][All Lists]
Advanced

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

GNUMail - editing window crash


From: Riccardo Mottola
Subject: GNUMail - editing window crash
Date: Sun, 02 Feb 2014 14:02:04 +0100
User-agent: Mozilla/5.0 (X11; FreeBSD i386; rv:26.0) Gecko/20100101 Firefox/26.0 SeaMonkey/2.23

Hi,

on Fred's advice, I was reorganizing GNUMails EditWindowController alloc and release.

Basically, previously, the GNUMail class alloc'd a controller and then forgot about it, relying that the controller auto-released by itself.

I now try to keep track of all controllers and release them by removing them from the controller array on window closure.

On Mac everything seems to work quite fine! On GNUstep I get this crash:

#0  0x29069c37 in objc_msgSend () from /usr/local/lib/libobjc.so.4.6
#1  0x287d26a4 in -[NSApplication(Private) _targetForAction:window:] (
    _cmd=0x28a74ae0, window=0x28a74918) at NSApplication.m:3891
#2 0x287d27af in -[NSApplication(Private) _targetForAction:keyWindow:mainWindow:] (self=0x2b8b6638, _cmd=0x28a74a80, aSelector=<value optimized out>,
    keyWindow=<value optimized out>, mainWindow=<value optimized out>)
    at NSApplication.m:3936
รน#3  0x287ceff3 in -[NSApplication targetForAction:] (self=0x2b8b6638,
    _cmd=0x28a74590) at NSApplication.m:2297
#4  0x287cef72 in -[NSApplication targetForAction:to:from:] (
    self=<value optimized out>, _cmd=0x28aacd08,
    theAction=<value optimized out>, theTarget=<value optimized out>,
    sender=<value optimized out>) at NSApplication.m:2273
#5  0x2887ccf1 in -[NSMenu update] (self=<value optimized out>,
    _cmd=0x28aad060) at NSMenu.m:1157
#6  0x2887cc03 in -[NSMenu update] (self=<value optimized out>,
    _cmd=0x28a74a20) at NSMenu.m:1152
#7  0x287d2973 in -[NSApplication(Private) _windowDidBecomeKey:] (
    self=<value optimized out>, _cmd=0x28a747f0, notification=0x2be60ee8)
    at NSApplication.m:3986
#8  0x28d84df8 in -[NSObject performSelector:withObject:] (self=0x2b8b6638,
    _cmd=<value optimized out>, aSelector=0x28a747f0, anObject=0x28a74918)
    at NSObject.m:2046
#9  0x28d76de1 in -[NSNotificationCenter _postAndRelease:] (
    self=<value optimized out>, _cmd=0x2be60ee8,
    notification=<value optimized out>) at NSNotificationCenter.m:1190
#10 0x28d77328 in -[NSNotificationCenter postNotificationName:object:userInfo:]
    (self=0x2b9ca098, _cmd=0x28ff2cb0, name=0x28b021a8, object=0x2bf2ec88,
    info=0x0) at NSNotificationCenter.m:1250
#11 0x28d7724e in -[NSNotificationCenter postNotificationName:object:] (
    self=0x2b9ca098, _cmd=0x28af4748, name=0x28b021a8, object=0x2bf2ec88)
    at NSNotificationCenter.m:1230
#12 0x2893d427 in -[NSWindow becomeKeyWindow] (self=0x2bf2ec88,
    _cmd=0x28af4d40) at NSWindow.m:1575
#13 0x2893d874 in -[NSWindow makeKeyWindow] (self=<value optimized out>,
    _cmd=0x28af4ce8) at NSWindow.m:1689
#14 0x2893932b in -[NSWindow(GNUstepPrivate) _lossOfKeyOrMainWindow] (
    self=<value optimized out>, _cmd=0x28af4ef0) at NSWindow.m:322
#15 0x2893daef in -[NSWindow orderWindow:relativeTo:] (self=0x2bf31d48,
    _cmd=0x28a6d0a0, otherWin=<value optimized out>) at NSWindow.m:1790
#16 0x2893da08 in -[NSWindow orderOut:] (self=0x2bf31d48, _cmd=0x28af4d58,
    sender=0x2bf31d48) at NSWindow.m:1744
#17 0x2894134e in -[NSWindow close] (self=0x2bf31d48, _cmd=0x28af4140)
    at NSWindow.m:2973
#18 0x28941c1b in -[NSWindow performClose:] (self=0x2bf31d48, _cmd=0x28af4a80,
    sender=0x2b8b6638) at NSWindow.m:3198
#19 0x289445cc in -[NSWindow sendEvent:] (self=<value optimized out>,
    _cmd=0x4ecb, theEvent=<value optimized out>) at NSWindow.m:4103


What appears to happen is that it tries to get the first responder of the window, and then its delegate and crashes there, thus the window has no delegate anymore. In the debugger I tried to print out the window to know which one it is, but I get a sound crash, thus perhaps even the window isn't there anymore.

The delegate is set EditWindowController.m:213

Is there some difference between the NIB and the GS code? I do wonder.
The delegate owns the, window, doesn't it? I am releasing the delegate. Why do I get in there? The notifications comes from becoming key apparently, but I am closing the window, the key should become the main MailViewer!

In fact, if I don't have a mail viewer open and just open a compose window, I can close it.

I'm confused. Hints or help is appreciated. I hate when stuff works on the Mac and then fails on GS...

Riccardo

Attachment: riccardo_mottola.vcf
Description: Vcard


reply via email to

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