diff --git a/src/network/kernel/qhostaddress.cpp b/src/network/kernel/qhostaddress.cpp index 34e3d2473..68154a8dc 100644 --- a/src/network/kernel/qhostaddress.cpp +++ b/src/network/kernel/qhostaddress.cpp @@ -122,8 +122,11 @@ QHostAddress::QHostAddress(const QByteArray &address) Constructs a copy of the given \a address. */ QHostAddress::QHostAddress(const QHostAddress &address) - : d(new QHostAddressPrivate(*address.d.data())) + : d(new QHostAddressPrivate()) { + d->protocol = address.d->protocol; + d->ipString = address.d->ipString; + d->scopeId = address.d->scopeId; } /*! @@ -169,6 +172,7 @@ QHostAddress::QHostAddress(SpecialAddress address) */ QHostAddress::~QHostAddress() { + delete d; } /*! @@ -177,7 +181,9 @@ QHostAddress::~QHostAddress() */ QHostAddress &QHostAddress::operator=(const QHostAddress &address) { - *d.data() = *address.d.data(); + d->protocol = address.d->protocol; + d->ipString = address.d->ipString; + d->scopeId = address.d->scopeId; return *this; } diff --git a/src/network/kernel/qhostaddress.h b/src/network/kernel/qhostaddress.h index bcddba0f4..9ab7f96cb 100644 --- a/src/network/kernel/qhostaddress.h +++ b/src/network/kernel/qhostaddress.h @@ -22,9 +22,7 @@ #ifndef QHOSTADDRESS_H #define QHOSTADDRESS_H -#include -#include -#include +#include #include struct sockaddr; @@ -79,7 +77,7 @@ public: { return !operator==(address); } private: - QScopedPointer d; + QHostAddressPrivate *d; }; Q_DECLARE_OPERATORS_FOR_FLAGS(QHostAddress::FormattingOptions) diff --git a/tests/auto/qsocketnotifier/tst_qsocketnotifier.cpp b/tests/auto/qsocketnotifier/tst_qsocketnotifier.cpp index 56fcfcdc6..0b65d8543 100644 --- a/tests/auto/qsocketnotifier/tst_qsocketnotifier.cpp +++ b/tests/auto/qsocketnotifier/tst_qsocketnotifier.cpp @@ -24,6 +24,7 @@ #include #include +#include #include #include #include