From c544a2be0ab457ad16ed274f597e026016e3fb2e Mon Sep 17 00:00:00 2001 From: Rubidium Date: Fri, 5 Apr 2024 22:34:20 +0200 Subject: [PATCH] Fix: do not use lengthof() for non C-style arrays --- src/network/network_gui.cpp | 2 +- src/newgrf.cpp | 2 +- src/settings.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index a9f6bd4882..b659f64d21 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -2251,7 +2251,7 @@ struct NetworkCompanyPasswordWindow : public Window { QueryString password_editbox; ///< Password editbox. Dimension warning_size; ///< How much space to use for the warning text - NetworkCompanyPasswordWindow(WindowDesc *desc, Window *parent) : Window(desc), password_editbox(lengthof(_settings_client.network.default_company_pass)) + NetworkCompanyPasswordWindow(WindowDesc *desc, Window *parent) : Window(desc), password_editbox(NETWORK_PASSWORD_LENGTH) { this->InitNested(0); this->UpdateWarningStringSize(); diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 021608b843..f3ba26801d 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -9499,7 +9499,7 @@ static void FinaliseIndustriesArray() for (auto &indtsp : _industry_tile_specs) { /* Apply default cargo translation map for unset cargo slots */ - for (uint i = 0; i < lengthof(indtsp.accepts_cargo); ++i) { + for (size_t i = 0; i < indtsp.accepts_cargo.size(); ++i) { if (!IsValidCargoID(indtsp.accepts_cargo[i])) indtsp.accepts_cargo[i] = GetCargoIDByLabel(GetActiveCargoLabel(indtsp.accepts_cargo_label[i])); } } diff --git a/src/settings.cpp b/src/settings.cpp index bb4f0966d6..1dc89ef622 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1031,7 +1031,7 @@ static void GraphicsSetLoadConfig(IniFile &ini) if (const IniItem *item = group->GetItem("extra_params"); item != nullptr && item->value) { auto &extra_params = BaseGraphics::ini_data.extra_params; - extra_params.resize(lengthof(GRFConfig::param)); + extra_params.resize(0x80); // TODO: make ParseIntList work nicely with C++ containers int count = ParseIntList(item->value->c_str(), &extra_params.front(), extra_params.size()); if (count < 0) { SetDParamStr(0, BaseGraphics::ini_data.name);