From: Thiago Macieira Date: Mon, 17 Oct 2011 11:46:44 +0000 (+0200) Subject: Optimise QHostAddress a little X-Git-Tag: 071012110112~1235^2^2~206 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bd384427c437f8e57a6543e7612c9b70ec908ff7;p=profile%2Fivi%2Fqtbase.git Optimise QHostAddress a little In QHostAddress::setAddress(SpecialAddress), avoid parsing strings. Change-Id: Icb756b4c8b06c21dbc231f8c7f0b0dac29ed97c3 Reviewed-by: Robin Burchell Reviewed-by: Shane Kearns --- diff --git a/src/network/kernel/qhostaddress.cpp b/src/network/kernel/qhostaddress.cpp index 230abb8..9240434 100644 --- a/src/network/kernel/qhostaddress.cpp +++ b/src/network/kernel/qhostaddress.cpp @@ -107,13 +107,14 @@ public: bool parse(); void clear(); + QString ipString; + QString scopeId; + quint32 a; // IPv4 address Q_IPV6ADDR a6; // IPv6 address QAbstractSocket::NetworkLayerProtocol protocol; - QString ipString; bool isParsed; - QString scopeId; friend class QHostAddress; }; @@ -556,23 +557,27 @@ QHostAddress::QHostAddress(const QHostAddress &address) QHostAddress::QHostAddress(SpecialAddress address) : d(new QHostAddressPrivate) { + Q_IPV6ADDR ip6; + memset(&ip6, 0, sizeof ip6); + switch (address) { case Null: break; case Broadcast: - setAddress(QLatin1String("255.255.255.255")); + d->setAddress(quint32(-1)); break; case LocalHost: - setAddress(QLatin1String("127.0.0.1")); + d->setAddress(0x7f000001); break; case LocalHostIPv6: - setAddress(QLatin1String("::1")); + ip6[15] = 1; + d->setAddress(ip6); break; case AnyIPv4: - setAddress(QLatin1String("0.0.0.0")); + setAddress(0u); break; case AnyIPv6: - setAddress(QLatin1String("::")); + d->setAddress(ip6); break; case Any: d->clear();