Merge #20429: refactor: replace (sizeof(a)/sizeof(a[0])) with C++17 std::size
e829c9afbfrefactor: replace sizeof(a)/sizeof(a[0]) by std::size (C++17) (Sebastian Falbesoner)365539c846refactor: init vectors via std::{begin,end} to avoid pointer arithmetic (Sebastian Falbesoner)63d4ee1968refactor: iterate arrays via C++11 range-based for loops if idx is not needed (Sebastian Falbesoner) Pull request description: This refactoring PR picks up the idea of #19626 and replaces all occurences of `sizeof(x)/sizeof(x[0])` (or `sizeof(x)/sizeof(*x)`, respectively) with the now-available C++17 [`std::size`](https://en.cppreference.com/w/cpp/iterator/size) (as [suggested by sipa](https://github.com/bitcoin/bitcoin/pull/19626#issuecomment-666487228)), making the macro `ARRAYLEN` obsolete. As preparation for this, two other changes are done to eliminate `sizeof(x)/sizeof(x[0])` usage: * all places where arrays are iterated via an index are changed to use C++11 range-based for loops If the index' only purpose is to access the array element (as [suggested by MarcoFalke](https://github.com/bitcoin/bitcoin/pull/19626#discussion_r463404541)). * `std::vector` initializations are done via `std::begin` and `std::end` rather than using pointer arithmetic to calculate the end (also [suggested by MarcoFalke](https://github.com/bitcoin/bitcoin/pull/20429#discussion_r567418821)). ACKs for top commit: practicalswift: cr ACKe829c9afbf: patch looks correct fanquake: ACKe829c9afbfMarcoFalke: review ACKe829c9afbf🌩 Tree-SHA512: b01d32c04b9e04d562b7717cae00a651ec9a718645047a90761be6959e0cc2adbd67494e058fe894641076711bb09c3b47a047d0275c736f0b2218e1ce0d193d
This commit is contained in:
15 files changed
+41
-51
No files matched your search
@@ -22,7 +22,6 @@ static const struct {
|
||||
{"signet", QAPP_APP_NAME_SIGNET, 35, 15},
|
||||
{"regtest", QAPP_APP_NAME_REGTEST, 160, 30},
|
||||
};
|
||||
static const unsigned network_styles_count = sizeof(network_styles)/sizeof(*network_styles);
|
||||
|
||||
// titleAddText needs to be const char* for tr()
|
||||
NetworkStyle::NetworkStyle(const QString &_appName, const int iconColorHueShift, const int iconColorSaturationReduction, const char *_titleAddText):
|
||||
@@ -81,14 +80,12 @@ NetworkStyle::NetworkStyle(const QString &_appName, const int iconColorHueShift,
|
||||
const NetworkStyle* NetworkStyle::instantiate(const std::string& networkId)
|
||||
{
|
||||
std::string titleAddText = networkId == CBaseChainParams::MAIN ? "" : strprintf("[%s]", networkId);
|
||||
for (unsigned x=0; x<network_styles_count; ++x)
|
||||
{
|
||||
if (networkId == network_styles[x].networkId)
|
||||
{
|
||||
for (const auto& network_style : network_styles) {
|
||||
if (networkId == network_style.networkId) {
|
||||
return new NetworkStyle(
|
||||
network_styles[x].appName,
|
||||
network_styles[x].iconColorHueShift,
|
||||
network_styles[x].iconColorSaturationReduction,
|
||||
network_style.appName,
|
||||
network_style.iconColorHueShift,
|
||||
network_style.iconColorSaturationReduction,
|
||||
titleAddText.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ static const struct {
|
||||
/* Other: linux, unix, ... */
|
||||
{"other", true, true, false}
|
||||
};
|
||||
static const unsigned platform_styles_count = sizeof(platform_styles)/sizeof(*platform_styles);
|
||||
|
||||
namespace {
|
||||
/* Local functions for colorizing single-color images */
|
||||
@@ -121,15 +120,13 @@ QIcon PlatformStyle::TextColorIcon(const QIcon& icon) const
|
||||
|
||||
const PlatformStyle *PlatformStyle::instantiate(const QString &platformId)
|
||||
{
|
||||
for (unsigned x=0; x<platform_styles_count; ++x)
|
||||
{
|
||||
if (platformId == platform_styles[x].platformId)
|
||||
{
|
||||
for (const auto& platform_style : platform_styles) {
|
||||
if (platformId == platform_style.platformId) {
|
||||
return new PlatformStyle(
|
||||
platform_styles[x].platformId,
|
||||
platform_styles[x].imagesOnButtons,
|
||||
platform_styles[x].colorizeIcons,
|
||||
platform_styles[x].useExtraSpacing);
|
||||
platform_style.platformId,
|
||||
platform_style.imagesOnButtons,
|
||||
platform_style.colorizeIcons,
|
||||
platform_style.useExtraSpacing);
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
|
||||
Reference in new issue
Block a user