Skip to content

Commit

Permalink
Avoid unncessary allocatons in range based loops
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Nov 24, 2024
1 parent ba1ec8e commit 9bf020f
Show file tree
Hide file tree
Showing 12 changed files with 39 additions and 34 deletions.
4 changes: 2 additions & 2 deletions examples/facebookdemo/fbdemo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,8 @@ void FBDemo::onLinkingSucceeded() {
if (!extraTokens.isEmpty()) {
emit extraTokensReady(extraTokens);
qDebug() << "Extra tokens in response:";
for (const QString &key: extraTokens.keys()) {
qDebug() << "\t" << key << ":" << (extraTokens.value(key).toString().left(3) + "...");
for (auto it = extraTokens.constBegin(); it != extraTokens.constEnd(); ++it) {
qDebug() << "\t" << it.key() << ":" << (it.value().toString().left(3) + "...");
}
}
emit linkingSucceeded();
Expand Down
4 changes: 2 additions & 2 deletions examples/msgraphdemo/msgraphdemo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ void MsgraphDemo::onLinkingSucceeded() {
if (!extraTokens.isEmpty()) {
emit extraTokensReady(extraTokens);
qDebug() << "Extra tokens in response:";
for (const QString &key: extraTokens.keys()) {
qDebug() << "\t" << key << ":" << (extraTokens.value(key).toString().left(3) + "...");
for (auto it = extraTokens.constBegin(); it != extraTokens.constEnd(); ++it) {
qDebug() << "\t" << it.key() << ":" << (it.value().toString().left(3) + "...");
}
}
emit linkingSucceeded();
Expand Down
4 changes: 2 additions & 2 deletions examples/msgraphexternalinterceptordemo/msgraphdemo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,8 @@ void MsgraphDemo::onLinkingSucceeded() {
if (!extraTokens.isEmpty()) {
emit extraTokensReady(extraTokens);
qDebug() << "Extra tokens in response:";
for (const QString &key : extraTokens.keys()) {
qDebug() << "\t" << key << ":" << (extraTokens.value(key).toString().left(3) + "...");
for (auto it = extraTokens.constBegin(); it != extraTokens.constEnd(); ++it) {
qDebug() << "\t" << it.key() << ":" << (it.value().toString().left(3) + "...");
}
}
emit linkingSucceeded();
Expand Down
4 changes: 2 additions & 2 deletions examples/twitterdemo/tweeter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ void Tweeter::onLinkingSucceeded() {
if (!extraTokens.isEmpty()) {
emit extraTokensReady(extraTokens);
qDebug() << "Extra tokens in response:";
for (const QString &key: extraTokens.keys()) {
qDebug() << "\t" << key << ":" << (extraTokens.value(key).toString().left(3) + "...");
for (auto it = extraTokens.constBegin(); it != extraTokens.constEnd(); ++it) {
qDebug() << "\t" << it.key() << ":" << (it.value().toString().left(3) + "...");
}
}
emit linkingSucceeded();
Expand Down
4 changes: 2 additions & 2 deletions examples/vimeodemo/vimeodemo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ void VimeoDemo::onLinkingSucceeded() {
if (!extraTokens.isEmpty()) {
emit extraTokensReady(extraTokens);
qDebug() << "Extra tokens in response:";
for (const QString &key : extraTokens.keys()) {
qDebug() << "\t" << key << ":" << (extraTokens.value(key).toString().left(3) + "...");
for (auto it = extraTokens.constBegin(); it != extraTokens.constEnd(); ++it) {
qDebug() << "\t" << it.key() << ":" << (it.value().toString().left(3) + "...");
}
}
emit linkingSucceeded();
Expand Down
4 changes: 2 additions & 2 deletions examples/youtubedemo/ytdemo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ void YTDemo::onLinkingSucceeded() {
if (!extraTokens.isEmpty()) {
emit extraTokensReady(extraTokens);
qDebug() << "Extra tokens in response:";
for (const QString &key: extraTokens.keys()) {
qDebug() << "\t" << key << ":" << (extraTokens.value(key).toString().left(3) + "...");
for (auto it = extraTokens.constBegin(); it != extraTokens.constEnd(); ++it) {
qDebug() << "\t" << it.key() << ":" << (it.value().toString().left(3) + "...");
}
}
emit linkingSucceeded();
Expand Down
12 changes: 7 additions & 5 deletions src/o1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,8 @@ void O1::link() {
QUrl requestData = requestTokenUrl();
#endif
O0RequestParameter param("", "");
for(const O0RequestParameter& param :requestParameters())
const QList<O0RequestParameter> parameters = requestParameters();
for(const O0RequestParameter& param :parameters)
requestData.addQueryItem(QString(param.name), QUrl::toPercentEncoding(QString(param.value)));

// Get the request url and add parameters
Expand Down Expand Up @@ -277,7 +278,7 @@ void O1::link() {
headers.append(O0RequestParameter(O2_OAUTH_SIGNATURE_METHOD, signatureMethod().toLatin1()));
headers.append(O0RequestParameter(O2_OAUTH_SIGNATURE, generateSignature(headers, request, requestParameters(), QNetworkAccessManager::PostOperation)));
log( QStringLiteral( "O1:link: Token request headers:" ) );
for(const O0RequestParameter&param: headers) {
for(const O0RequestParameter&param: qAsConst(headers)) {
log( QStringLiteral( " %1=%2" ).arg( param.name, param.value ) );
}

Expand Down Expand Up @@ -412,8 +413,8 @@ void O1::onTokenExchangeFinished() {
// Set extra tokens if any
if (!response.isEmpty()) {
QVariantMap extraTokens;
for(const QString &key : response.keys()) {
extraTokens.insert(key, response.value(key));
for (auto it = response.constBegin(); it != response.constEnd(); ++it) {
extraTokens.insert(it.key(), it.value());
}
setExtraTokens(extraTokens);
}
Expand All @@ -427,7 +428,8 @@ void O1::onTokenExchangeFinished() {

QMap<QString, QString> O1::parseResponse(const QByteArray &response) {
QMap<QString, QString> ret;
for (const QByteArray &param: response.split('&')) {
const QList<QByteArray> params = response.split('&');
for (const QByteArray &param: params) {
QList<QByteArray> kv = param.split('=');
if (kv.length() == 2) {
ret.insert(QUrl::fromPercentEncoding(kv[0]), QUrl::fromPercentEncoding(kv[1]));
Expand Down
24 changes: 13 additions & 11 deletions src/o2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -232,8 +232,9 @@ void O2::link() {
parameters.append(qMakePair(QString(O2_OAUTH2_STATE), uniqueState));
if ( !apiKey_.isEmpty() )
parameters.append(qMakePair(QString(O2_OAUTH2_API_KEY), apiKey_));
for (const QString &key: extraRequestParams().keys()) {
parameters.append(qMakePair(key, extraRequestParams().value(key).toString()));
const QVariantMap extraParams = extraRequestParams();
for (auto it = extraParams.constBegin(); it != extraParams.constEnd(); ++it) {
parameters.append(qMakePair(it.key(), it.value().toString()));
}
// Show authentication URL with a web browser
QUrl url(requestUrl_);
Expand All @@ -251,8 +252,10 @@ void O2::link() {
parameters.append(O0RequestParameter(O2_OAUTH2_SCOPE, scope_.toUtf8()));
if ( !apiKey_.isEmpty() )
parameters.append(O0RequestParameter(O2_OAUTH2_API_KEY, apiKey_.toUtf8()));
for (const QString &key: extraRequestParams().keys()) {
parameters.append(O0RequestParameter(key.toUtf8(), extraRequestParams().value(key).toByteArray()));

const QVariantMap extraParams = extraRequestParams();
for (auto it = extraParams.constBegin(); it != extraParams.constEnd(); ++it) {
parameters.append(O0RequestParameter(it.key().toUtf8(), it.value().toByteArray()));
}
QByteArray payload = O0BaseAuth::createQueryParameters(parameters);

Expand Down Expand Up @@ -408,9 +411,9 @@ void O2::onTokenReplyFinished() {

// Dump tokens
log( QStringLiteral("O2::onTokenReplyFinished: Tokens returned:\n") );
for (const QString &key: tokens.keys()) {
for (auto it = tokens.constBegin(); it != tokens.constEnd(); ++it) {
// SENSITIVE DATA in RelWithDebInfo or Debug builds, so it is truncated first
log( QStringLiteral("%1: %2...").arg( key, tokens.value( key ).toString().left( 3 ) ) );
log( QStringLiteral("%1: %2...").arg( it.key(), it.value().toString().left( 3 ) ) );
}

// Check for mandatory tokens
Expand Down Expand Up @@ -455,14 +458,13 @@ void O2::onTokenReplyError(QNetworkReply::NetworkError error) {
QByteArray O2::buildRequestBody(const QMap<QString, QString> &parameters) {
QByteArray body;
bool first = true;
for (const QString &key: parameters.keys()) {
for (auto it = parameters.constBegin(); it != parameters.constEnd(); ++it) {
if (first) {
first = false;
} else {
body.append("&");
}
QString value = parameters.value(key);
body.append(QUrl::toPercentEncoding(key) + QString("=").toUtf8() + QUrl::toPercentEncoding(value));
body.append(QUrl::toPercentEncoding(it.key()) + QString("=").toUtf8() + QUrl::toPercentEncoding(it.value()));
}
return body;
}
Expand Down Expand Up @@ -633,9 +635,9 @@ void O2::onDeviceAuthReplyFinished()

// Dump tokens
log( QStringLiteral("O2::onDeviceAuthReplyFinished: Tokens returned:\n") );
for (const QString &key: params.keys()) {
for (auto it = params.constBegin(); it != params.constEnd(); ++it) {
// SENSITIVE DATA in RelWithDebInfo or Debug builds, so it is truncated first
log( QStringLiteral("%1: %2...").arg( key, params.value( key ).toString().left( 3 ) ) );
log( QStringLiteral("%1: %2...").arg( it.key(), it.value().toString().left( 3 ) ) );
}

// Check for mandatory parameters
Expand Down
4 changes: 2 additions & 2 deletions src/o2facebook.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ void O2Facebook::onVerificationReceived(const QMap<QString, QString> response) {

if (response.contains("error")) {
qWarning() << "O2Facebook::onVerificationReceived: Verification failed";
for (const QString &key: response.keys()) {
qWarning() << "O2Facebook::onVerificationReceived:" << key << response.value(key);
for (auto it = response.constBegin(); it != response.constEnd(); ++it) {
qWarning() << "O2Facebook::onVerificationReceived:" << it.key() << it.value();
}
Q_EMIT linkingFailed();
return;
Expand Down
4 changes: 2 additions & 2 deletions src/o2reply.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ void O2Reply::onTimeOut() {
}

O2ReplyList::~O2ReplyList() {
for (O2Reply *timedReply: replies_) {
for (O2Reply *timedReply: qAsConst(replies_)) {
delete timedReply;
}
}
Expand All @@ -43,7 +43,7 @@ void O2ReplyList::remove(QNetworkReply *reply) {
}

O2Reply *O2ReplyList::find(const QNetworkReply *reply) {
for (O2Reply *timedReply: replies_) {
for (O2Reply *timedReply: qAsConst(replies_)) {
if (timedReply->reply == reply) {
return timedReply;
}
Expand Down
2 changes: 1 addition & 1 deletion src/o2replyserver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ QMap<QString, QString> O2ReplyServer::parseQueryParams(QByteArray *data) {
tokens = query.queryItems();
#endif
QMap<QString, QString> queryParams;
for (const QPair<QString, QString> &tokenPair: tokens) {
for (const QPair<QString, QString> &tokenPair: qAsConst(tokens)) {
// FIXME: We are decoding key and value again. This helps with Google OAuth, but is it mandated by the standard?
QString key = QUrl::fromPercentEncoding(QByteArray().append(tokenPair.first.trimmed().toLatin1()));
QString value = QUrl::fromPercentEncoding(QByteArray().append(tokenPair.second.trimmed().toLatin1()));
Expand Down
3 changes: 2 additions & 1 deletion src/o2skydrive.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@ void O2Skydrive::redirected(const QUrl &url) {

QStringList parts = url.toString().split("#");
if (parts.length() > 1) {
for (const QString &item: parts[1].split("&")) {
const QStringList items = parts[1].split("&");
for (const QString &item: items) {
int index = item.indexOf("=");
if (index == -1) {
continue;
Expand Down

0 comments on commit 9bf020f

Please sign in to comment.