|
From: | Fred Kiefer |
Subject: | Re: Odd problem |
Date: | Wed, 27 Jul 2011 09:35:01 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.18) Gecko/20110616 SUSE/3.1.11 Thunderbird/3.1.11 |
On 27.07.2011 03:10, Germán Arias wrote:
OK, now all works fine, except GNUMail. So we can back to the original problem. The code of gnumail I'm testing worked fine like a year ago (or most). Since is the same code, this problem can be a bug on gnustep or an incompatibility in gnumail (or pantomime). I send attached the outputs on gdb and valgrind. The app crash at line 481 in CWService.m (in pantomime framework): if (_delegate&& [_delegate respondsToSelector: @selector(service:receivedData:)]) when is called the method respondToSelector:. When app crash, the object _delegate don't implement the method service:receivedData:. But as I know, this don't should crash the app.
Most likely your problem is that the delegate has already been deallocated when this method get called. A simple way to test this is to retain the delegate in the setDelegate: method. Of course this will leak an object and should only be done to test if this is actually the issue.
When you are sure about it, things get complicated :-(You will have to find out where the delegate get set and what should keep him alive outside of the CWService and of course, why this mechanism isn't working. I don't understand much of Pantomime or GNUMail, but from a short look I think that CWService is a sort of super class of the different connections and TaskManager seems to be the delegate used. You will have to watch, when TaskManager gets deallocated.
Hope this helps Fred
[Prev in Thread] | Current Thread | [Next in Thread] |