From 7bd019df906f436c737d36cdaa04e9ba414853fe Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Fri, 8 Sep 2023 20:41:46 +0100 Subject: [PATCH] Codechange: Use std::array for TemporaryStorageArray. This removes the need for initialisation with memset(). --- src/newgrf_storage.h | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/newgrf_storage.h b/src/newgrf_storage.h index 7ea531443b..95ad50cec4 100644 --- a/src/newgrf_storage.h +++ b/src/newgrf_storage.h @@ -131,17 +131,12 @@ struct PersistentStorageArray : BasePersistentStorageArray { */ template struct TemporaryStorageArray { - TYPE storage[SIZE]; ///< Memory to for the storage array - uint16_t init[SIZE]; ///< Storage has been assigned, if this equals 'init_key'. - uint16_t init_key; ///< Magic key to 'init'. + using StorageType = std::array; + using StorageInitType = std::array; - /** Simply construct the array */ - TemporaryStorageArray() - { - memset(this->storage, 0, sizeof(this->storage)); // not exactly needed, but makes code analysers happy - memset(this->init, 0, sizeof(this->init)); - this->init_key = 1; - } + StorageType storage{}; ///< Memory for the storage array + StorageInitType init{}; ///< Storage has been assigned, if this equals 'init_key'. + uint16_t init_key{1}; ///< Magic key to 'init'. /** * Stores some value at a given position. @@ -181,7 +176,7 @@ struct TemporaryStorageArray { this->init_key++; if (this->init_key == 0) { /* When init_key wraps around, we need to reset everything */ - memset(this->init, 0, sizeof(this->init)); + this->init = {}; this->init_key = 1; } }