summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorMaurice Kalinowski <maurice.kalinowski@digia.com>2014-05-23 17:16:54 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-06-03 09:55:30 +0200
commit6b9a9a01e289381ea915ac43595c6c5da0db73b4 (patch)
tree68f460051ea2e42af8b5d6c7331ad5218cc1e68c /src/network
parent69e2d3b3e96bb1fa553acb5cd867267d1596c314 (diff)
remove HSTRING instances
HSTRING needs to be released or handles will be leaked. Instead use HString which takes care of resource management on its own. Task-Number: QTBUG-38115 Change-Id: I2c767776c1f22f45acd8dd77b693f30d63d894b9 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Diffstat (limited to 'src/network')
-rw-r--r--src/network/kernel/qdnslookup_winrt.cpp12
-rw-r--r--src/network/kernel/qhostinfo_winrt.cpp24
-rw-r--r--src/network/kernel/qnetworkinterface_winrt.cpp6
-rw-r--r--src/network/socket/qnativesocketengine_winrt.cpp56
4 files changed, 49 insertions, 49 deletions
diff --git a/src/network/kernel/qdnslookup_winrt.cpp b/src/network/kernel/qdnslookup_winrt.cpp
index 6ac944934a..08f3167a29 100644
--- a/src/network/kernel/qdnslookup_winrt.cpp
+++ b/src/network/kernel/qdnslookup_winrt.cpp
@@ -98,9 +98,9 @@ void QDnsLookupRunnable::query(const int requestType, const QByteArray &requestN
GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Networking_Sockets_DatagramSocket).Get(), &datagramSocketStatics);
IAsyncOperation<IVectorView<EndpointPair*> *> *op;
- HSTRING proto;
- WindowsCreateString(L"0", 1, &proto);
- datagramSocketStatics->GetEndpointPairsAsync(host, proto, &op);
+ datagramSocketStatics->GetEndpointPairsAsync(host,
+ HString::MakeReference(L"0").Get(),
+ &op);
datagramSocketStatics->Release();
host->Release();
@@ -134,11 +134,11 @@ void QDnsLookupRunnable::query(const int requestType, const QByteArray &requestN
|| (type == HostNameType_Ipv6 && requestType == QDnsLookup::A))))
continue;
- HSTRING name;
- remoteHost->get_CanonicalName(&name);
+ HString name;
+ remoteHost->get_CanonicalName(name.GetAddressOf());
remoteHost->Release();
UINT32 length;
- PCWSTR rawString = WindowsGetStringRawBuffer(name, &length);
+ PCWSTR rawString = name.GetRawBuffer(&length);
QDnsHostAddressRecord record;
record.d->name = aceHostname;
record.d->value = QHostAddress(QString::fromWCharArray(rawString, length));
diff --git a/src/network/kernel/qhostinfo_winrt.cpp b/src/network/kernel/qhostinfo_winrt.cpp
index 92897f563d..e02cd98e08 100644
--- a/src/network/kernel/qhostinfo_winrt.cpp
+++ b/src/network/kernel/qhostinfo_winrt.cpp
@@ -95,9 +95,9 @@ QHostInfo QHostInfoAgent::fromName(const QString &hostName)
GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Networking_Sockets_DatagramSocket).Get(), &datagramSocketStatics);
IAsyncOperation<IVectorView<EndpointPair*> *> *op;
- HSTRING proto;
- WindowsCreateString(L"0", 1, &proto);
- datagramSocketStatics->GetEndpointPairsAsync(host, proto, &op);
+ datagramSocketStatics->GetEndpointPairsAsync(host,
+ HString::MakeReference(L"0").Get(),
+ &op);
datagramSocketStatics->Release();
host->Release();
@@ -131,11 +131,11 @@ QHostInfo QHostInfoAgent::fromName(const QString &hostName)
if (type == HostNameType_DomainName)
continue;
- HSTRING name;
- remoteHost->get_CanonicalName(&name);
+ HString name;
+ remoteHost->get_CanonicalName(name.GetAddressOf());
remoteHost->Release();
UINT32 length;
- PCWSTR rawString = WindowsGetStringRawBuffer(name, &length);
+ PCWSTR rawString = name.GetRawBuffer(&length);
QHostAddress addr;
addr.setAddress(QString::fromWCharArray(rawString, length));
if (!addresses.contains(addr))
@@ -170,22 +170,22 @@ QString QHostInfo::localHostName()
if (type != HostNameType_DomainName)
continue;
- HSTRING name;
- hostName->get_CanonicalName(&name);
+ HString name;
+ hostName->get_CanonicalName(name.GetAddressOf());
hostName->Release();
UINT32 length;
- PCWSTR rawString = WindowsGetStringRawBuffer(name, &length);
+ PCWSTR rawString = name.GetRawBuffer(&length);
return QString::fromWCharArray(rawString, length);
}
IHostName *firstHost;
hostNames->GetAt(0, &firstHost);
hostNames->Release();
- HSTRING name;
- firstHost->get_CanonicalName(&name);
+ HString name;
+ firstHost->get_CanonicalName(name.GetAddressOf());
firstHost->Release();
UINT32 length;
- PCWSTR rawString = WindowsGetStringRawBuffer(name, &length);
+ PCWSTR rawString = name.GetRawBuffer(&length);
return QString::fromWCharArray(rawString, length);
}
diff --git a/src/network/kernel/qnetworkinterface_winrt.cpp b/src/network/kernel/qnetworkinterface_winrt.cpp
index 6a814c85d4..48a96928a8 100644
--- a/src/network/kernel/qnetworkinterface_winrt.cpp
+++ b/src/network/kernel/qnetworkinterface_winrt.cpp
@@ -114,11 +114,11 @@ static QList<QNetworkInterfacePrivate *> interfaceListing()
|| (type == HostNameType_Ipv6 && hostInfo.prefixLength > 128))
continue;
- HSTRING name;
- hostName->get_CanonicalName(&name);
+ HString name;
+ hostName->get_CanonicalName(name.GetAddressOf());
hostName->Release();
UINT32 length;
- PCWSTR rawString = WindowsGetStringRawBuffer(name, &length);
+ PCWSTR rawString = name.GetRawBuffer(&length);
hostInfo.address = QString::fromWCharArray(rawString, length);
hostList << hostInfo;
diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp
index a32a757191..8eb632ff63 100644
--- a/src/network/socket/qnativesocketengine_winrt.cpp
+++ b/src/network/socket/qnativesocketengine_winrt.cpp
@@ -124,10 +124,10 @@ struct SocketHandler
Q_GLOBAL_STATIC(SocketHandler, gSocketHandler)
-QString qt_QStringFromHSTRING(HSTRING string)
+static inline QString qt_QStringFromHString(const HString &string)
{
UINT32 length;
- PCWSTR rawString = WindowsGetStringRawBuffer(string, &length);
+ PCWSTR rawString = string.GetRawBuffer(&length);
return QString::fromWCharArray(rawString, length);
}
@@ -604,13 +604,13 @@ qint64 QNativeSocketEngine::readDatagram(char *data, qint64 maxlen, QHostAddress
for (int i = 0; i < d->pendingDatagrams.size(); ++i) {
IDatagramSocketMessageReceivedEventArgs *arg = d->pendingDatagrams.at(i);
ComPtr<IHostName> remoteHost;
- HSTRING remoteHostString;
- HSTRING remotePort;
+ HString remoteHostString;
+ HString remotePort;
arg->get_RemoteAddress(&remoteHost);
- arg->get_RemotePort(&remotePort);
- remoteHost->get_CanonicalName(&remoteHostString);
- returnAddress.setAddress(qt_QStringFromHSTRING(remoteHostString));
- returnPort = qt_QStringFromHSTRING(remotePort).toInt();
+ arg->get_RemotePort(remotePort.GetAddressOf());
+ remoteHost->get_CanonicalName(remoteHostString.GetAddressOf());
+ returnAddress.setAddress(qt_QStringFromHString(remoteHostString));
+ returnPort = qt_QStringFromHString(remotePort).toInt();
ComPtr<IDataReader> reader;
arg->GetDataReader(&reader);
if (!reader)
@@ -1097,7 +1097,7 @@ bool QNativeSocketEnginePrivate::fetchConnectionParameters()
if (socketType == QAbstractSocket::TcpSocket) {
ComPtr<IHostName> hostName;
- HSTRING tmpHString;
+ HString tmpHString;
ComPtr<IStreamSocketInformation> info;
if (FAILED(tcp->get_Information(&info))) {
qWarning("QNativeSocketEnginePrivate::fetchConnectionParameters: Could not obtain socket info");
@@ -1105,28 +1105,28 @@ bool QNativeSocketEnginePrivate::fetchConnectionParameters()
}
info->get_LocalAddress(&hostName);
if (hostName) {
- hostName->get_CanonicalName(&tmpHString);
- localAddress.setAddress(qt_QStringFromHSTRING(tmpHString));
- info->get_LocalPort(&tmpHString);
- localPort = qt_QStringFromHSTRING(tmpHString).toInt();
+ hostName->get_CanonicalName(tmpHString.GetAddressOf());
+ localAddress.setAddress(qt_QStringFromHString(tmpHString));
+ info->get_LocalPort(tmpHString.GetAddressOf());
+ localPort = qt_QStringFromHString(tmpHString).toInt();
}
if (!localPort && tcpListener) {
ComPtr<IStreamSocketListenerInformation> listenerInfo = 0;
tcpListener->get_Information(&listenerInfo);
- listenerInfo->get_LocalPort(&tmpHString);
- localPort = qt_QStringFromHSTRING(tmpHString).toInt();
+ listenerInfo->get_LocalPort(tmpHString.GetAddressOf());
+ localPort = qt_QStringFromHString(tmpHString).toInt();
localAddress == QHostAddress::Any;
}
info->get_RemoteAddress(&hostName);
if (hostName) {
- hostName->get_CanonicalName(&tmpHString);
- peerAddress.setAddress(qt_QStringFromHSTRING(tmpHString));
- info->get_RemotePort(&tmpHString);
- peerPort = qt_QStringFromHSTRING(tmpHString).toInt();
+ hostName->get_CanonicalName(tmpHString.GetAddressOf());
+ peerAddress.setAddress(qt_QStringFromHString(tmpHString));
+ info->get_RemotePort(tmpHString.GetAddressOf());
+ peerPort = qt_QStringFromHString(tmpHString).toInt();
}
} else if (socketType == QAbstractSocket::UdpSocket) {
ComPtr<IHostName> hostName;
- HSTRING tmpHString;
+ HString tmpHString;
ComPtr<IDatagramSocketInformation> info;
if (FAILED(udp->get_Information(&info))) {
qWarning("QNativeSocketEnginePrivate::fetchConnectionParameters: Could not obtain socket information");
@@ -1134,18 +1134,18 @@ bool QNativeSocketEnginePrivate::fetchConnectionParameters()
}
info->get_LocalAddress(&hostName);
if (hostName) {
- hostName->get_CanonicalName(&tmpHString);
- localAddress.setAddress(qt_QStringFromHSTRING(tmpHString));
- info->get_LocalPort(&tmpHString);
- localPort = qt_QStringFromHSTRING(tmpHString).toInt();
+ hostName->get_CanonicalName(tmpHString.GetAddressOf());
+ localAddress.setAddress(qt_QStringFromHString(tmpHString));
+ info->get_LocalPort(tmpHString.GetAddressOf());
+ localPort = qt_QStringFromHString(tmpHString).toInt();
}
info->get_RemoteAddress(&hostName);
if (hostName) {
- hostName->get_CanonicalName(&tmpHString);
- peerAddress.setAddress(qt_QStringFromHSTRING(tmpHString));
- info->get_RemotePort(&tmpHString);
- peerPort = qt_QStringFromHSTRING(tmpHString).toInt();
+ hostName->get_CanonicalName(tmpHString.GetAddressOf());
+ peerAddress.setAddress(qt_QStringFromHString(tmpHString));
+ info->get_RemotePort(tmpHString.GetAddressOf());
+ peerPort = qt_QStringFromHString(tmpHString).toInt();
}
}
return true;