From 61cec33be2aed692dfc1042013a3c218a0306944 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 27 Apr 2025 16:35:43 +0200 Subject: [PATCH] Codechange: Add 'const' to static variables, which are only initialised once. --- src/console_cmds.cpp | 2 +- src/effectvehicle.cpp | 2 +- src/fios.cpp | 2 +- src/ini_type.h | 2 +- src/misc/dbg_helpers.h | 4 ++-- src/network/core/http_curl.cpp | 22 +++++++++++----------- src/network/network_command.cpp | 2 +- src/news_gui.cpp | 2 +- src/os/macosx/string_osx.cpp | 6 +++--- src/pathfinder/yapf/yapf_type.hpp | 2 +- src/rail_cmd.cpp | 2 +- src/screenshot_pcx.cpp | 2 +- src/settings.cpp | 2 +- src/settings_table.cpp | 2 +- src/smallmap_gui.cpp | 2 +- src/textfile_gui.cpp | 2 +- src/townname.cpp | 2 +- src/vehicle_gui.cpp | 4 ++-- src/video/win32_v.cpp | 2 +- src/viewport.cpp | 2 +- 20 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 8003394e3a..a174ee5247 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -2036,7 +2036,7 @@ static bool ConSayClient(std::span argv) } /** All the known authorized keys with their name. */ -static std::vector> _console_cmd_authorized_keys{ +static const std::initializer_list> _console_cmd_authorized_keys{ { "admin", &_settings_client.network.admin_authorized_keys }, { "rcon", &_settings_client.network.rcon_authorized_keys }, { "server", &_settings_client.network.server_authorized_keys }, diff --git a/src/effectvehicle.cpp b/src/effectvehicle.cpp index c98d7a8a17..941fa1b4a5 100644 --- a/src/effectvehicle.cpp +++ b/src/effectvehicle.cpp @@ -540,7 +540,7 @@ struct EffectProcs { }; /** Per-EffectVehicleType handling. */ -static std::array _effect_procs = {{ +static const std::array _effect_procs = {{ { ChimneySmokeInit, ChimneySmokeTick, TO_INDUSTRIES }, // EV_CHIMNEY_SMOKE { SteamSmokeInit, SteamSmokeTick, TO_INVALID }, // EV_STEAM_SMOKE { DieselSmokeInit, DieselSmokeTick, TO_INVALID }, // EV_DIESEL_SMOKE diff --git a/src/fios.cpp b/src/fios.cpp index 1ae20cfcb1..0a6beb038b 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -716,7 +716,7 @@ FiosNumberedSaveName::FiosNumberedSaveName(const std::string &prefix) : prefix(p static std::string _prefix; ///< Static as the lambda needs access to it. /* Callback for FiosFileScanner. */ - static FiosGetTypeAndNameProc *proc = [](SaveLoadOperation, std::string_view file, std::string_view ext) { + static FiosGetTypeAndNameProc *const proc = [](SaveLoadOperation, std::string_view file, std::string_view ext) { if (StrEqualsIgnoreCase(ext, ".sav") && file.starts_with(_prefix)) return std::tuple(FIOS_TYPE_FILE, std::string{}); return std::tuple(FIOS_TYPE_INVALID, std::string{}); }; diff --git a/src/ini_type.h b/src/ini_type.h index def66ff6d5..0393d4a91b 100644 --- a/src/ini_type.h +++ b/src/ini_type.h @@ -48,7 +48,7 @@ struct IniGroup { /** Ini file that only supports loading. */ struct IniLoadFile { - using IniGroupNameList = std::initializer_list; + using IniGroupNameList = std::initializer_list; std::list groups; ///< all groups in the ini std::string comment; ///< last comment in file diff --git a/src/misc/dbg_helpers.h b/src/misc/dbg_helpers.h index f34dd85bba..69e598fb74 100644 --- a/src/misc/dbg_helpers.h +++ b/src/misc/dbg_helpers.h @@ -178,7 +178,7 @@ struct DumpTarget { /** Dump nested object (or only its name if this instance is already known). */ template void WriteStructT(std::string_view name, const S *s) { - static size_t type_id = ++LastTypeId(); + static const size_t type_id = ++LastTypeId(); if (s == nullptr) { /* No need to dump nullptr struct. */ @@ -201,7 +201,7 @@ struct DumpTarget { /** Dump nested object (or only its name if this instance is already known). */ template void WriteStructT(std::string_view name, const std::deque *s) { - static size_t type_id = ++LastTypeId(); + static const size_t type_id = ++LastTypeId(); if (s == nullptr) { /* No need to dump nullptr struct. */ diff --git a/src/network/core/http_curl.cpp b/src/network/core/http_curl.cpp index efe399ced8..920808499e 100644 --- a/src/network/core/http_curl.cpp +++ b/src/network/core/http_curl.cpp @@ -29,19 +29,19 @@ #if defined(UNIX) /** List of certificate bundles, depending on OS. Taken from: https://go.dev/src/crypto/x509/root_linux.go. */ -static auto _certificate_files = { - "/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc. - "/etc/pki/tls/certs/ca-bundle.crt", // Fedora/RHEL 6 - "/etc/ssl/ca-bundle.pem", // OpenSUSE - "/etc/pki/tls/cacert.pem", // OpenELEC - "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem", // CentOS/RHEL 7 - "/etc/ssl/cert.pem", // Alpine Linux +static constexpr std::initializer_list _certificate_files = { + "/etc/ssl/certs/ca-certificates.crt"sv, // Debian/Ubuntu/Gentoo etc. + "/etc/pki/tls/certs/ca-bundle.crt"sv, // Fedora/RHEL 6 + "/etc/ssl/ca-bundle.pem"sv, // OpenSUSE + "/etc/pki/tls/cacert.pem"sv, // OpenELEC + "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem"sv, // CentOS/RHEL 7 + "/etc/ssl/cert.pem"sv, // Alpine Linux }; /** List of certificate directories, depending on OS. Taken from: https://go.dev/src/crypto/x509/root_linux.go. */ -static auto _certificate_directories = { - "/etc/ssl/certs", // SLES10/SLES11, https://golang.org/issue/12139 - "/etc/pki/tls/certs", // Fedora/RHEL - "/system/etc/security/cacerts", // Android +static constexpr std::initializer_list _certificate_directories = { + "/etc/ssl/certs"sv, // SLES10/SLES11, https://golang.org/issue/12139 + "/etc/pki/tls/certs"sv, // Fedora/RHEL + "/system/etc/security/cacerts"sv, // Android }; #endif /* UNIX */ diff --git a/src/network/network_command.cpp b/src/network/network_command.cpp index 09015783ea..c3495b788b 100644 --- a/src/network/network_command.cpp +++ b/src/network/network_command.cpp @@ -110,7 +110,7 @@ inline auto MakeCallbackTable(std::index_sequence) noexcept } /** Type-erased table of callbacks. */ -static auto _callback_table = MakeCallbackTable(std::make_index_sequence<_callback_tuple_size>{}); +static const auto _callback_table = MakeCallbackTable(std::make_index_sequence<_callback_tuple_size>{}); template struct CallbackArgsHelper; template diff --git a/src/news_gui.cpp b/src/news_gui.cpp index bfc3dee3be..1fecfec7fd 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -317,7 +317,7 @@ static WindowDesc &GetNewsWindowLayout(NewsStyle style) /** * Per-NewsType data */ -static NewsTypeData _news_type_data[] = { +static const NewsTypeData _news_type_data[] = { /* name, age, sound, */ NewsTypeData("news_display.arrival_player", 60, SND_1D_APPLAUSE ), ///< NewsType::ArrivalCompany NewsTypeData("news_display.arrival_other", 60, SND_1D_APPLAUSE ), ///< NewsType::ArrivalOther diff --git a/src/os/macosx/string_osx.cpp b/src/os/macosx/string_osx.cpp index cfb430f551..25cf921af7 100644 --- a/src/os/macosx/string_osx.cpp +++ b/src/os/macosx/string_osx.cpp @@ -145,7 +145,7 @@ static CGFloat SpriteFontGetWidth(void *ref_con) return GetGlyphWidth(fs, c); } -static CTRunDelegateCallbacks _sprite_font_callback = { +static const CTRunDelegateCallbacks _sprite_font_callback = { kCTRunDelegateCurrentVersion, nullptr, nullptr, nullptr, &SpriteFontGetWidth }; @@ -330,7 +330,7 @@ void MacOSSetCurrentLocaleName(std::string_view iso_code) */ int MacOSStringCompare(std::string_view s1, std::string_view s2) { - static bool supported = MacOSVersionIsAtLeast(10, 5, 0); + static const bool supported = MacOSVersionIsAtLeast(10, 5, 0); if (!supported) return 0; CFStringCompareFlags flags = kCFCompareCaseInsensitive | kCFCompareNumerically | kCFCompareLocalized | kCFCompareWidthInsensitive | kCFCompareForcedOrdering; @@ -354,7 +354,7 @@ int MacOSStringCompare(std::string_view s1, std::string_view s2) */ int MacOSStringContains(std::string_view str, std::string_view value, bool case_insensitive) { - static bool supported = MacOSVersionIsAtLeast(10, 5, 0); + static const bool supported = MacOSVersionIsAtLeast(10, 5, 0); if (!supported) return -1; CFStringCompareFlags flags = kCFCompareLocalized | kCFCompareWidthInsensitive; diff --git a/src/pathfinder/yapf/yapf_type.hpp b/src/pathfinder/yapf/yapf_type.hpp index a39304fcfd..2a045e0785 100644 --- a/src/pathfinder/yapf/yapf_type.hpp +++ b/src/pathfinder/yapf/yapf_type.hpp @@ -66,7 +66,7 @@ static constexpr EndSegmentReasons ESRF_ABORT_PF_MASK = { inline std::string ValueStr(EndSegmentReasons flags) { - static const std::initializer_list end_segment_reason_names = { + static const std::initializer_list end_segment_reason_names = { "DEAD_END", "RAIL_TYPE", "INFINITE_LOOP", "SEGMENT_TOO_LONG", "CHOICE_FOLLOWS", "DEPOT", "WAYPOINT", "STATION", "SAFE_TILE", "PATH_TOO_LONG", "FIRST_TWO_WAY_RED", "LOOK_AHEAD_END", "TARGET_REACHED" diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index f792b22bde..4ccbcea55a 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -1916,7 +1916,7 @@ struct FenceOffset { }; /** Offsets for drawing fences */ -static FenceOffset _fence_offsets[] = { +static const FenceOffset _fence_offsets[] = { { CORNER_INVALID, 0, 1, 16, 1 }, // RFO_FLAT_X_NW { CORNER_INVALID, 1, 0, 1, 16 }, // RFO_FLAT_Y_NE { CORNER_W, 8, 8, 1, 1 }, // RFO_FLAT_LEFT diff --git a/src/screenshot_pcx.cpp b/src/screenshot_pcx.cpp index 8c9f1dd006..20eb22ec32 100644 --- a/src/screenshot_pcx.cpp +++ b/src/screenshot_pcx.cpp @@ -153,4 +153,4 @@ public: } }; -static ScreenshotProvider_Pcx s_screenshot_provider_pcx; +static const ScreenshotProvider_Pcx s_screenshot_provider_pcx; diff --git a/src/settings.cpp b/src/settings.cpp index 8fcb09d4fc..41e6b026da 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1425,7 +1425,7 @@ void LoadFromConfig(bool startup) } if (generic_version < IFV_AUTOSAVE_RENAME && IsConversionNeeded(generic_ini, "gui", "autosave", "autosave_interval", &old_item)) { - static std::vector _old_autosave_interval{"off", "monthly", "quarterly", "half year", "yearly"}; + static constexpr std::initializer_list _old_autosave_interval{"off"sv, "monthly"sv, "quarterly"sv, "half year"sv, "yearly"sv}; auto old_value = OneOfManySettingDesc::ParseSingleValue(*old_item->value, _old_autosave_interval).value_or(-1); switch (old_value) { diff --git a/src/settings_table.cpp b/src/settings_table.cpp index 48625b28a5..434ec43f74 100644 --- a/src/settings_table.cpp +++ b/src/settings_table.cpp @@ -448,7 +448,7 @@ static bool CheckRoadSide(int32_t &) static std::optional ConvertLandscape(std::string_view value) { /* try with the old values */ - static std::vector _old_landscape_values{"normal", "hilly", "desert", "candy"}; + static constexpr std::initializer_list _old_landscape_values{"normal"sv, "hilly"sv, "desert"sv, "candy"sv}; return OneOfManySettingDesc::ParseSingleValue(value, _old_landscape_values); } diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index caba502d1e..5bda9cc041 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -55,7 +55,7 @@ struct LegendAndColour { }; /** Link stat colours shown in legenda. */ -static uint8_t _linkstat_colours_in_legenda[] = {0, 1, 3, 5, 7, 9, 11}; +static const uint8_t _linkstat_colours_in_legenda[] = {0, 1, 3, 5, 7, 9, 11}; static const int NUM_NO_COMPANY_ENTRIES = 4; ///< Number of entries in the owner legend that are not companies. diff --git a/src/textfile_gui.cpp b/src/textfile_gui.cpp index 10b85ab1cd..59490fece4 100644 --- a/src/textfile_gui.cpp +++ b/src/textfile_gui.cpp @@ -864,7 +864,7 @@ std::optional GetTextfile(TextfileType type, Subdirectory dir, std: std::string_view base_path = filename.substr(0, slash + 1); - static const std::initializer_list extensions{ + static const std::initializer_list extensions{ "txt", "md", #if defined(WITH_ZLIB) diff --git a/src/townname.cpp b/src/townname.cpp index 0308a42659..b14d1128a9 100644 --- a/src/townname.cpp +++ b/src/townname.cpp @@ -961,7 +961,7 @@ static void MakeCatalanTownName(StringBuilder &builder, uint32_t seed) typedef void TownNameGenerator(StringBuilder &builder, uint32_t seed); /** Town name generators */ -static TownNameGenerator *_town_name_generators[] = { +static TownNameGenerator *const _town_name_generators[] = { MakeEnglishOriginalTownName, // replaces first 4 characters of name MakeFrenchTownName, MakeGermanTownName, diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 5d4f60122c..4c1f6f39e8 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2391,13 +2391,13 @@ extern void DrawRoadVehDetails(const Vehicle *v, const Rect &r); extern void DrawShipDetails(const Vehicle *v, const Rect &r); extern void DrawAircraftDetails(const Aircraft *v, const Rect &r); -static StringID _service_interval_dropdown_calendar[] = { +static const StringID _service_interval_dropdown_calendar[] = { STR_VEHICLE_DETAILS_DEFAULT, STR_VEHICLE_DETAILS_DAYS, STR_VEHICLE_DETAILS_PERCENT, }; -static StringID _service_interval_dropdown_wallclock[] = { +static const StringID _service_interval_dropdown_wallclock[] = { STR_VEHICLE_DETAILS_DEFAULT, STR_VEHICLE_DETAILS_MINUTES, STR_VEHICLE_DETAILS_PERCENT, diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index 696b6d4a61..1928074d6f 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -442,7 +442,7 @@ static void SetDarkModeForWindow(HWND hWnd, bool dark_mode) * reason, the code uses dynamic loading and ignores any errors for a best-effort result. */ static LibraryLoader _dwmapi("dwmapi.dll"); typedef HRESULT(WINAPI *PFNDWMSETWINDOWATTRIBUTE)(HWND, DWORD, LPCVOID, DWORD); - static PFNDWMSETWINDOWATTRIBUTE DwmSetWindowAttribute = _dwmapi.GetFunction("DwmSetWindowAttribute"); + static const PFNDWMSETWINDOWATTRIBUTE DwmSetWindowAttribute = _dwmapi.GetFunction("DwmSetWindowAttribute"); if (DwmSetWindowAttribute != nullptr) { /* Contrary to the published documentation, DWMWA_USE_IMMERSIVE_DARK_MODE does not change the diff --git a/src/viewport.cpp b/src/viewport.cpp index 015f52dc7c..304d815708 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -3559,7 +3559,7 @@ struct ViewportSSCSS { }; /** List of sorters ordered from best to worst. */ -static ViewportSSCSS _vp_sprite_sorters[] = { +static const ViewportSSCSS _vp_sprite_sorters[] = { #ifdef WITH_SSE { &ViewportSortParentSpritesSSE41Checker, &ViewportSortParentSpritesSSE41 }, #endif