From 919830db7a97f540fe0d89837ebe875b430ade47 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 (cherry picked from commit c544a2be0ab457ad16ed274f597e026016e3fb2e) --- 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 24f2a8223d..b1c2e57aad 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -2266,7 +2266,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 fa676673eb..8bf1c1d817 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -11161,7 +11161,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 8684a19749..fb31e70803 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -2484,7 +2484,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);