[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
riccardo_mottola.vcf
Description: Vcard