Op 05/05/2016 om 13:20 schreef Nye:
On Thu, May 5, 2016 at 4:22 AM, Nikos Chantziaras <rea...@gmail.com
<mailto:rea...@gmail.com>> wrote:
On 05/05/16 01:44, Nye wrote:
No one said it does. Perhaps I'm misunderstanding, are you
searching for
a silver bullet for memory management?
I already found it. Question is how to make Qt work with it :-)
You most certainly have not. I'm tired of repeating this, but here I
go again: C++ IS NOT JAVA!
> That's not good enough. I need to delete objects way before
their
parent is deleted.
So delete them. As I said, parent is notified of the child's
deletion.
If I delete them, the parent may already have deleted them. So I'd
have a double-delete.
We are running in a circle here. If the parent may delete the children
before you've lost all the references to them, then use QPointer.
> When 'parent' gets deleted before 'dialog', then 'dialog' gets
deleted even though it's on the stack.
And how does the parent gets deleted before the 'dialog' if I
may ask,
unless you're doing deletions from different threads ...?
I don't know. There's long call chains. Someone may delete the
parent. There's no way to know.
The whole premise behind Mr. Sommers' code was that this is in one
function (one stack frame), so unless you do `delete this` in the
middle of the function (directly or indirectly) there doesn't seem be
a way the parent gets deleted.
Well, that's not quite true of course. If you want to show a dialog
created on the stack, you will have to use it's exec() method. That
spins an event loop, and that means that a lot can happen in the mean
time. It can vary from an incoming DBUS messages causing the application
to terminate to something in response to a signal from that dialog
itself, to some timer triggering a series of events that lead to the
destruction of the parent.
So, in that sense, Nikos is right.
I prefer just dealing with that using... new and ::open instead.
André
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest