keditbookmarks crash, KParts related

David Faure faure at kde.org
Mon Jun 13 12:56:20 BST 2005


On Saturday 11 June 2005 16:26, Daniel Teske wrote:
> Hi,
> 
> I'm sorry if my last mail wasn't as clear as I would have liked, let's 
> try again.
> 
> keditbookmarks has the following code (and that is all the code using 
> s_part):
> 
> void ActionsImpl::slotPrint() {
>     s_part = KParts::ComponentFactory
>                         ::createPartInstanceFromQuery<KParts::ReadOnlyPart>(
>                                 "text/html", QString::null);
I guess that there is no parent widget because the html-widget becomes a standalone window,
and no parent object because, well, ActionsImpl should handle the deletion anyway...

>     // delete s_part;  -- dies horribly atm
I have yet to see why - backtrace?

>     // TODO - is this a leak?
Yes it is ;)

> And currently it is crashing on exit if the users has openend the print 
> dialog. If I uncomment the "delete s_part" it stops crashing.
OK, that's a good reason to make ActionsImpl the parent of the part, so that
when exiting, it gets destroyed at the right time.
Try adding 0,0,this,0 to the arguments to createPartInstanceFromQuery().

> > so if you close the window, the widget tree gets deleted, 
> Except that s_part has no parent Widget.
> So I need to delete the part, right?
Not necessarily; having a parent object is enough for it to be destroyed.
Then the widget gets destroyed by KParts.

[Hmm. That's the behavior I want to remove in kde4, but this is a special case
where it's useful since there's no parent widget :-))
Maybe I'll do it halfway: the part dtor deletes the widget, but if the widget
is destroyed we can still expect that something else will destroy the part].

> You are right (as always).
Hehe. I remember one day long ago when I told Waldo "you are always right", 
and he answered that he didn't like me saying that :-) He, and I, can be wrong
too, sometimes :)

-- 
David Faure, faure at kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).





More information about the kfm-devel mailing list