OSDN Git Service

avoid temporaries in qt_socket_getPortAndAddress()
authorIvailo Monev <xakepa10@gmail.com>
Mon, 13 Sep 2021 02:06:18 +0000 (05:06 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Mon, 13 Sep 2021 02:06:18 +0000 (05:06 +0300)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/network/kernel/qhostinfo_unix.cpp
src/network/socket/qnativesocketengine_unix.cpp

index 58c700b..a4e588b 100644 (file)
@@ -136,16 +136,14 @@ QHostInfo QHostInfoAgent::fromName(const QString &hostName)
                 qDebug() << "getaddrinfo node: flags:" << node->ai_flags << "family:" << node->ai_family << "ai_socktype:" << node->ai_socktype << "ai_protocol:" << node->ai_protocol << "ai_addrlen:" << node->ai_addrlen;
 #endif
             if (node->ai_family == AF_INET) {
-                QHostAddress addr;
-                addr.setAddress(ntohl(((sockaddr_in *) node->ai_addr)->sin_addr.s_addr));
+                QHostAddress addr(ntohl(((sockaddr_in *) node->ai_addr)->sin_addr.s_addr));
                 if (!addresses.contains(addr))
                     addresses.append(addr);
             }
 #ifndef QT_NO_IPV6
             else if (node->ai_family == AF_INET6) {
-                QHostAddress addr;
                 sockaddr_in6 *sa6 = (sockaddr_in6 *) node->ai_addr;
-                addr.setAddress(sa6->sin6_addr.s6_addr);
+                QHostAddress addr(sa6->sin6_addr.s6_addr);
                 if (sa6->sin6_scope_id)
                     addr.setScopeId(QString::number(sa6->sin6_scope_id));
                 if (!addresses.contains(addr))
index f6e4fc6..0ac093d 100644 (file)
@@ -57,9 +57,7 @@ static inline void qt_socket_getPortAndAddress(const qt_sockaddr *s, quint16 *po
         Q_IPV6ADDR tmp;
         memcpy(&tmp, &s->a6.sin6_addr, sizeof(tmp));
         if (addr) {
-            QHostAddress tmpAddress;
-            tmpAddress.setAddress(tmp);
-            *addr = tmpAddress;
+            addr->setAddress(tmp);
 #ifndef QT_NO_IPV6IFNAME
             QSTACKARRAY(char, scopeid, IFNAMSIZ);
             if (::if_indextoname(s->a6.sin6_scope_id, scopeid)) {
@@ -76,9 +74,7 @@ static inline void qt_socket_getPortAndAddress(const qt_sockaddr *s, quint16 *po
     if (port)
         *port = ntohs(s->a4.sin_port);
     if (addr) {
-        QHostAddress tmpAddress;
-        tmpAddress.setAddress(ntohl(s->a4.sin_addr.s_addr));
-        *addr = tmpAddress;
+        addr->setAddress(ntohl(s->a4.sin_addr.s_addr));
     }
 }