[Interest] C'tor member initialisation with 'this'

Constantin Makshin cmakshin at gmail.com
Fri Jan 10 18:58:13 CET 2014


No, it won't. 'this' is just a pointer and copying it anywhere (except a
free-memory-in-destructor kind of smartpointer, of course, but using these
to store a pointer to the parent object is a weird idea anyway) doesn't
affect the object's lifetime in any way; neither does the object's
destructor gets called when a pointer to it is destroyed by going out of
scope or any other means.
On Jan 10, 2014 9:42 PM, "Frank Hemer" <frank at hemer.org> wrote:

> On Friday 10 January 2014 20:51:35 Constantin Makshin wrote:
> > Everything is OK unless QNetworkAccessManager's constructor (or anything
> > further in the call chain) tries to use that pointer for anything beyond
> > copying it somewhere else. What exactly is looking suspicious to you?
>
> When the transports parent object gets deleted, it will delete the
> transport.
> Thus I wonder whether it could cause a duplicate delete ('this' gets
> deleted
> and will subsequently delete the networkMgr but it is a member var and thus
> will be deleted twice?
>
> Frank
>
> > On Jan 10, 2014 5:32 PM, "Frank Hemer" <frank at hemer.org> wrote:
> > > Hi,
> > >
> > > when looking at the code of the qt solutions (from git), I realized
> > > following
> > > snippet:
> > >
> > > class QT_QTSOAP_EXPORT QtSoapHttpTransport : public QObject
> > > {
> > >
> > >    ...
> > >
> > > private:
> > >     QNetworkAccessManager networkMgr;
> > >
> > >    ...
> > >
> > > };
> > >
> > > QtSoapHttpTransport::QtSoapHttpTransport(QObject *parent)
> > >
> > >     : QObject(parent), networkMgr(this)
> > >
> > > {
> > >
> > >    ...
> > >
> > > }
> > >
> > > Is there any reason why the QNetworkAccessManager needs to be
> initialized
> > > with
> > > the 'this' reference?
> > > Seems like a wrong approach to me - maybe because it used to be a
> pointer
> > > at
> > > some point in time?
> > >
> > > I found this when analyzing some weird and not really reproducible
> stack
> > > traces ...
> > >
> > > Frank
> > > _______________________________________________
> > > Interest mailing list
> > > Interest at qt-project.org
> > > http://lists.qt-project.org/mailman/listinfo/interest
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20140110/f6b4e067/attachment.html>


More information about the Interest mailing list