From: Manuel Nickschas Date: Mon, 3 Sep 2018 23:18:10 +0000 (+0200) Subject: clang-tidy: Reorder NetworkInfo attributes to avoid excessive padding X-Git-Tag: 0.13-rc2~47 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=ce221dcdce9f39596adf115b05057023c31bde4e clang-tidy: Reorder NetworkInfo attributes to avoid excessive padding Use a more optimal attribute order to avoid excessive padding in the NetworkInfo struct. Remove the default constructor in favor of direct initialization. Rewrite the comparison operator using a boolean expression instead of a bunch of conditions. --- diff --git a/src/common/network.cpp b/src/common/network.cpp index dcca4f49..f2a8e1fa 100644 --- a/src/common/network.cpp +++ b/src/common/network.cpp @@ -1159,54 +1159,34 @@ void Network::determinePrefixes() const * NetworkInfo ************************************************************************/ -NetworkInfo::NetworkInfo() - : networkId(0), - identity(1), - useRandomServer(false), - useAutoIdentify(false), - autoIdentifyService("NickServ"), - useSasl(false), - useAutoReconnect(true), - autoReconnectInterval(60), - autoReconnectRetries(20), - unlimitedReconnectRetries(false), - rejoinChannels(true), - useCustomMessageRate(false), - messageRateBurstSize(5), - messageRateDelay(2200), - unlimitedMessageRate(false) -{ -} - bool NetworkInfo::operator==(const NetworkInfo &other) const { - if (networkId != other.networkId) return false; - if (networkName != other.networkName) return false; - if (identity != other.identity) return false; - if (codecForServer != other.codecForServer) return false; - if (codecForEncoding != other.codecForEncoding) return false; - if (codecForDecoding != other.codecForDecoding) return false; - if (serverList != other.serverList) return false; - if (useRandomServer != other.useRandomServer) return false; - if (perform != other.perform) return false; - if (useAutoIdentify != other.useAutoIdentify) return false; - if (autoIdentifyService != other.autoIdentifyService) return false; - if (autoIdentifyPassword != other.autoIdentifyPassword) return false; - if (useSasl != other.useSasl) return false; - if (saslAccount != other.saslAccount) return false; - if (saslPassword != other.saslPassword) return false; - if (useAutoReconnect != other.useAutoReconnect) return false; - if (autoReconnectInterval != other.autoReconnectInterval) return false; - if (autoReconnectRetries != other.autoReconnectRetries) return false; - if (unlimitedReconnectRetries != other.unlimitedReconnectRetries) return false; - if (rejoinChannels != other.rejoinChannels) return false; - // Custom rate limiting - if (useCustomMessageRate != other.useCustomMessageRate) return false; - if (messageRateBurstSize != other.messageRateBurstSize) return false; - if (messageRateDelay != other.messageRateDelay) return false; - if (unlimitedMessageRate != other.unlimitedMessageRate) return false; - return true; + return networkName == other.networkName + && serverList == other.serverList + && perform == other.perform + && autoIdentifyService == other.autoIdentifyService + && autoIdentifyPassword == other.autoIdentifyPassword + && saslAccount == other.saslAccount + && saslPassword == other.saslPassword + && codecForServer == other.codecForServer + && codecForEncoding == other.codecForEncoding + && codecForDecoding == other.codecForDecoding + && networkId == other.networkId + && identity == other.identity + && messageRateBurstSize == other.messageRateBurstSize + && messageRateDelay == other.messageRateDelay + && autoReconnectInterval == other.autoReconnectInterval + && autoReconnectRetries == other.autoReconnectRetries + && rejoinChannels == other.rejoinChannels + && useRandomServer == other.useRandomServer + && useAutoIdentify == other.useAutoIdentify + && useSasl == other.useSasl + && useAutoReconnect == other.useAutoReconnect + && unlimitedReconnectRetries == other.unlimitedReconnectRetries + && useCustomMessageRate == other.useCustomMessageRate + && unlimitedMessageRate == other.unlimitedMessageRate + ; } @@ -1219,31 +1199,30 @@ bool NetworkInfo::operator!=(const NetworkInfo &other) const QDataStream &operator<<(QDataStream &out, const NetworkInfo &info) { QVariantMap i; - i["NetworkId"] = QVariant::fromValue(info.networkId); - i["NetworkName"] = info.networkName; - i["Identity"] = QVariant::fromValue(info.identity); - i["CodecForServer"] = info.codecForServer; - i["CodecForEncoding"] = info.codecForEncoding; - i["CodecForDecoding"] = info.codecForDecoding; - i["ServerList"] = toVariantList(info.serverList); - i["UseRandomServer"] = info.useRandomServer; - i["Perform"] = info.perform; - i["UseAutoIdentify"] = info.useAutoIdentify; - i["AutoIdentifyService"] = info.autoIdentifyService; - i["AutoIdentifyPassword"] = info.autoIdentifyPassword; - i["UseSasl"] = info.useSasl; - i["SaslAccount"] = info.saslAccount; - i["SaslPassword"] = info.saslPassword; - i["UseAutoReconnect"] = info.useAutoReconnect; - i["AutoReconnectInterval"] = info.autoReconnectInterval; - i["AutoReconnectRetries"] = info.autoReconnectRetries; + i["NetworkName"] = info.networkName; + i["ServerList"] = toVariantList(info.serverList); + i["Perform"] = info.perform; + i["AutoIdentifyService"] = info.autoIdentifyService; + i["AutoIdentifyPassword"] = info.autoIdentifyPassword; + i["SaslAccount"] = info.saslAccount; + i["SaslPassword"] = info.saslPassword; + i["CodecForServer"] = info.codecForServer; + i["CodecForEncoding"] = info.codecForEncoding; + i["CodecForDecoding"] = info.codecForDecoding; + i["NetworkId"] = QVariant::fromValue(info.networkId); + i["Identity"] = QVariant::fromValue(info.identity); + i["MessageRateBurstSize"] = info.messageRateBurstSize; + i["MessageRateDelay"] = info.messageRateDelay; + i["AutoReconnectInterval"] = info.autoReconnectInterval; + i["AutoReconnectRetries"] = info.autoReconnectRetries; + i["RejoinChannels"] = info.rejoinChannels; + i["UseRandomServer"] = info.useRandomServer; + i["UseAutoIdentify"] = info.useAutoIdentify; + i["UseSasl"] = info.useSasl; + i["UseAutoReconnect"] = info.useAutoReconnect; i["UnlimitedReconnectRetries"] = info.unlimitedReconnectRetries; - i["RejoinChannels"] = info.rejoinChannels; - // Custom rate limiting - i["UseCustomMessageRate"] = info.useCustomMessageRate; - i["MessageRateBurstSize"] = info.messageRateBurstSize; - i["MessageRateDelay"] = info.messageRateDelay; - i["UnlimitedMessageRate"] = info.unlimitedMessageRate; + i["UseCustomMessageRate"] = info.useCustomMessageRate; + i["UnlimitedMessageRate"] = info.unlimitedMessageRate; out << i; return out; } @@ -1253,31 +1232,30 @@ QDataStream &operator>>(QDataStream &in, NetworkInfo &info) { QVariantMap i; in >> i; - info.networkId = i["NetworkId"].value(); - info.networkName = i["NetworkName"].toString(); - info.identity = i["Identity"].value(); - info.codecForServer = i["CodecForServer"].toByteArray(); - info.codecForEncoding = i["CodecForEncoding"].toByteArray(); - info.codecForDecoding = i["CodecForDecoding"].toByteArray(); - info.serverList = fromVariantList(i["ServerList"].toList()); - info.useRandomServer = i["UseRandomServer"].toBool(); - info.perform = i["Perform"].toStringList(); - info.useAutoIdentify = i["UseAutoIdentify"].toBool(); - info.autoIdentifyService = i["AutoIdentifyService"].toString(); - info.autoIdentifyPassword = i["AutoIdentifyPassword"].toString(); - info.useSasl = i["UseSasl"].toBool(); - info.saslAccount = i["SaslAccount"].toString(); - info.saslPassword = i["SaslPassword"].toString(); - info.useAutoReconnect = i["UseAutoReconnect"].toBool(); - info.autoReconnectInterval = i["AutoReconnectInterval"].toUInt(); - info.autoReconnectRetries = i["AutoReconnectRetries"].toInt(); + info.networkName = i["NetworkName"].toString(); + info.serverList = fromVariantList(i["ServerList"].toList()); + info.perform = i["Perform"].toStringList(); + info.autoIdentifyService = i["AutoIdentifyService"].toString(); + info.autoIdentifyPassword = i["AutoIdentifyPassword"].toString(); + info.saslAccount = i["SaslAccount"].toString(); + info.saslPassword = i["SaslPassword"].toString(); + info.codecForServer = i["CodecForServer"].toByteArray(); + info.codecForEncoding = i["CodecForEncoding"].toByteArray(); + info.codecForDecoding = i["CodecForDecoding"].toByteArray(); + info.networkId = i["NetworkId"].value(); + info.identity = i["Identity"].value(); + info.messageRateBurstSize = i["MessageRateBurstSize"].toUInt(); + info.messageRateDelay = i["MessageRateDelay"].toUInt(); + info.autoReconnectInterval = i["AutoReconnectInterval"].toUInt(); + info.autoReconnectRetries = i["AutoReconnectRetries"].toInt(); + info.rejoinChannels = i["RejoinChannels"].toBool(); + info.useRandomServer = i["UseRandomServer"].toBool(); + info.useAutoIdentify = i["UseAutoIdentify"].toBool(); + info.useSasl = i["UseSasl"].toBool(); + info.useAutoReconnect = i["UseAutoReconnect"].toBool(); info.unlimitedReconnectRetries = i["UnlimitedReconnectRetries"].toBool(); - info.rejoinChannels = i["RejoinChannels"].toBool(); - // Custom rate limiting - info.useCustomMessageRate = i["UseCustomMessageRate"].toBool(); - info.messageRateBurstSize = i["MessageRateBurstSize"].toUInt(); - info.messageRateDelay = i["MessageRateDelay"].toUInt(); - info.unlimitedMessageRate = i["UnlimitedMessageRate"].toBool(); + info.useCustomMessageRate = i["UseCustomMessageRate"].toBool(); + info.unlimitedMessageRate = i["UnlimitedMessageRate"].toBool(); return in; } diff --git a/src/common/network.h b/src/common/network.h index da295691..eaa427c3 100644 --- a/src/common/network.h +++ b/src/common/network.h @@ -758,44 +758,42 @@ private: //! Stores all editable information about a network (as opposed to runtime state). -struct NetworkInfo { - // set some default values, note that this does not initialize e.g. name and id - NetworkInfo(); - - NetworkId networkId; +struct NetworkInfo +{ QString networkName; - IdentityId identity; - - bool useCustomEncodings; // not used! - QByteArray codecForServer; - QByteArray codecForEncoding; - QByteArray codecForDecoding; Network::ServerList serverList; - bool useRandomServer; - QStringList perform; - bool useAutoIdentify; - QString autoIdentifyService; + QString autoIdentifyService{"NickServ"}; QString autoIdentifyPassword; - bool useSasl; QString saslAccount; QString saslPassword; - bool useAutoReconnect; - quint32 autoReconnectInterval; - quint16 autoReconnectRetries; - bool unlimitedReconnectRetries; - bool rejoinChannels; + QByteArray codecForServer; + QByteArray codecForEncoding; + QByteArray codecForDecoding; - // Custom rate limiting - bool useCustomMessageRate; /// If true, use custom rate limits, otherwise use defaults - quint32 messageRateBurstSize; /// Maximum number of messages to send without any delays - quint32 messageRateDelay; /// Delay in ms. for messages when max. burst messages sent - bool unlimitedMessageRate; /// If true, disable rate limiting, otherwise apply limits + NetworkId networkId {0}; + IdentityId identity {1}; + + quint32 messageRateBurstSize {5}; ///< Maximum number of messages to send without any delays + quint32 messageRateDelay {2200}; ///< Delay in ms. for messages when max. burst messages sent + + quint32 autoReconnectInterval {60}; + quint16 autoReconnectRetries {20}; + + bool rejoinChannels {true}; + bool useRandomServer {false}; + bool useAutoIdentify {false}; + bool useSasl {false}; + bool useAutoReconnect {true}; + bool unlimitedReconnectRetries {false}; + bool useCustomMessageRate {false}; ///< If true, use custom rate limits, otherwise use defaults + bool unlimitedMessageRate {false}; ///< If true, disable rate limiting, otherwise apply limits +public: bool operator==(const NetworkInfo &other) const; bool operator!=(const NetworkInfo &other) const; };