diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2024-05-08 21:38:57 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2024-05-13 11:14:57 -0700 |
commit | 561df44cade81c05721d076ceff0b0813e883f4a (patch) | |
tree | 765054e7832a72378db29e641e80b102dec375ab /src/oauth/qoauthhttpserverreplyhandler.cpp | |
parent | 1e1d989eb300d8246629174a1a91b228a8487f0f (diff) |
QOAuthHttpServerReplyHandler: avoid triple QMap lookup foe new clients
1. contains()
2. operator[]
3. operator[] again
Pick-to: 6.7
Change-Id: Ie30a3caf09ef4176bb36fffd17cdb82d41839303
Reviewed-by: Jesus Fernandez <jsfdez@gmail.com>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/oauth/qoauthhttpserverreplyhandler.cpp')
-rw-r--r-- | src/oauth/qoauthhttpserverreplyhandler.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/oauth/qoauthhttpserverreplyhandler.cpp b/src/oauth/qoauthhttpserverreplyhandler.cpp index 6a0dccb..8b20cdf 100644 --- a/src/oauth/qoauthhttpserverreplyhandler.cpp +++ b/src/oauth/qoauthhttpserverreplyhandler.cpp @@ -52,10 +52,14 @@ void QOAuthHttpServerReplyHandlerPrivate::_q_clientConnected() void QOAuthHttpServerReplyHandlerPrivate::_q_readData(QTcpSocket *socket) { - if (!clients.contains(socket)) - clients[socket].port = httpServer.serverPort(); + QHttpRequest *request = nullptr; + if (auto it = clients.find(socket); it == clients.end()) { + request = &clients[socket]; // insert it + request->port = httpServer.serverPort(); + } else { + request = &*it; + } - QHttpRequest *request = &clients[socket]; bool error = false; if (Q_LIKELY(request->state == QHttpRequest::State::ReadingMethod)) |