Gideon CVS 2002-08-09 : 3 crashes and a patch

F@lk Brettschneider falk.brettschneider at gmx.de
Sat Aug 10 16:36:03 UTC 2002


Hi!

Christian Couder wrote:

>On Saturday 10 August 2002 08:24, Matthias Hoelzer-Kluepfel wrote:
>
>>On Saturday 10 August 2002 00:18, Ludovic LANGE wrote:
>>
>>>The first one and the second one (first two attachments) occurs when I
>>>close Gideon, when no project is loaded. It crashes in QextMdiMainFrm,
>>>and whatever the UI choosen.
>>>These ones are not very annoying.
>>>
>>I have tried for some time to find this bug. It only appears in the MDI
>>modes, not in IDEAl mode. I am still a bit clueless about the cause.
>>
>>Does anyone have an idea what could cause this problems? I fear it is a
>>double deletion of an object, but I have not yet found out where this
>>happens.
>>
>
>Hi,
>
>I have found that in  DocTreeViewPart::~DocTreeViewPart(), if I remove the two 
>following lines :
>
>if (m_widget)
>   topLevel()->removeView(m_widget);
>
>then it crashes latter :-( and I didn't go farther to find the other crash.
>
>The crash in 
>
>topLevel()->removeView(m_widget); 
>
>happens because the TopLevelMDI object used by topLevel() has already been 
>deleted before.
>
>If someone know how to make topLevel() safer then that would be fine. If not 
>then we need to delete the two above lines.
>
Using QextMDI in a plugin-based architecture, it's a good idea to call 
QextMdiMainFrm::removeWindowFromMdi(QextMdiChildView*) for each view 
before deleting the widgets in the plugin or their wrapping widgets. 
Just to let the QextMDI control know that they should be removed from 
its managment lists. Otherwise you'll get dangling pointers, and that 
will hit you on program shutdown. Take a look at the mechanism of 
KDevelop-2.

Ciao
F at lk






More information about the KDevelop-devel mailing list