1
0
Fork 0

Codechange: use value initialisation over memset

pull/14244/head
Rubidium 2025-05-06 22:26:12 +02:00 committed by rubidium42
parent 7981fcb297
commit f8aceb6c37
15 changed files with 29 additions and 47 deletions

View File

@ -18,5 +18,5 @@ Cheats _cheats;
/** Reinitialise all the cheats. */ /** Reinitialise all the cheats. */
void InitializeCheats() void InitializeCheats()
{ {
memset(&_cheats, 0, sizeof(Cheats)); _cheats = {};
} }

View File

@ -14,8 +14,8 @@
* Info about each of the cheats. * Info about each of the cheats.
*/ */
struct Cheat { struct Cheat {
bool been_used; ///< has this cheat been used before? bool been_used = false; ///< has this cheat been used before?
bool value; ///< tells if the bool cheat is active or not bool value = false; ///< tells if the bool cheat is active or not
}; };
/** /**
@ -24,15 +24,15 @@ struct Cheat {
* Only add new entries at the end of the struct! * Only add new entries at the end of the struct!
*/ */
struct Cheats { struct Cheats {
Cheat magic_bulldozer; ///< dynamite industries, objects Cheat magic_bulldozer{}; ///< dynamite industries, objects
Cheat switch_company; ///< change to another company Cheat switch_company{}; ///< change to another company
Cheat money; ///< get rich or poor Cheat money{}; ///< get rich or poor
Cheat crossing_tunnels; ///< allow tunnels that cross each other Cheat crossing_tunnels{}; ///< allow tunnels that cross each other
Cheat no_jetcrash; ///< no jet will crash on small airports anymore Cheat no_jetcrash{}; ///< no jet will crash on small airports anymore
Cheat change_date; ///< changes date ingame Cheat change_date{}; ///< changes date ingame
Cheat setup_prod; ///< setup raw-material production in game Cheat setup_prod{}; ///< setup raw-material production in game
Cheat edit_max_hl; ///< edit the maximum heightlevel; this is a cheat because of the fact that it needs to reset NewGRF game state and doing so as a simple configuration breaks the expectation of many Cheat edit_max_hl{}; ///< edit the maximum heightlevel; this is a cheat because of the fact that it needs to reset NewGRF game state and doing so as a simple configuration breaks the expectation of many
Cheat station_rating; ///< Fix station ratings at 100% Cheat station_rating{}; ///< Fix station ratings at 100%
}; };
extern Cheats _cheats; extern Cheats _cheats;

View File

@ -202,8 +202,7 @@ bool NetworkAddress::IsInNetmask(std::string_view netmask)
SOCKET NetworkAddress::Resolve(int family, int socktype, int flags, SocketList *sockets, LoopProc func) SOCKET NetworkAddress::Resolve(int family, int socktype, int flags, SocketList *sockets, LoopProc func)
{ {
struct addrinfo *ai; struct addrinfo *ai;
struct addrinfo hints; struct addrinfo hints{};
memset(&hints, 0, sizeof (hints));
hints.ai_family = family; hints.ai_family = family;
hints.ai_flags = flags; hints.ai_flags = flags;
hints.ai_socktype = socktype; hints.ai_socktype = socktype;

View File

@ -27,10 +27,10 @@ using SocketList = std::map<SOCKET, NetworkAddress>; ///< Type for a mapping
*/ */
class NetworkAddress { class NetworkAddress {
private: private:
std::string hostname; ///< The hostname std::string hostname{}; ///< The hostname
int address_length; ///< The length of the resolved address int address_length{}; ///< The length of the resolved address
sockaddr_storage address; ///< The resolved address sockaddr_storage address{}; ///< The resolved address
bool resolved; ///< Whether the address has been (tried to be) resolved bool resolved = false; ///< Whether the address has been (tried to be) resolved
/** /**
* Helper function to resolve something to a socket. * Helper function to resolve something to a socket.
@ -62,7 +62,6 @@ public:
address_length(address_length), address_length(address_length),
resolved(address_length != 0) resolved(address_length != 0)
{ {
memset(&this->address, 0, sizeof(this->address));
memcpy(&this->address, address, address_length); memcpy(&this->address, address, address_length);
} }
@ -81,8 +80,6 @@ public:
hostname.remove_suffix(1); hostname.remove_suffix(1);
} }
this->hostname = hostname; this->hostname = hostname;
memset(&this->address, 0, sizeof(this->address));
this->address.ss_family = family; this->address.ss_family = family;
this->SetPort(port); this->SetPort(port);
} }

View File

@ -222,8 +222,7 @@ void TCPConnecter::Resolve()
/* Port is already guaranteed part of the connection_string. */ /* Port is already guaranteed part of the connection_string. */
NetworkAddress address = ParseConnectionString(this->connection_string, 0); NetworkAddress address = ParseConnectionString(this->connection_string, 0);
addrinfo hints; addrinfo hints{};
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC; hints.ai_family = AF_UNSPEC;
hints.ai_flags = AI_ADDRCONFIG; hints.ai_flags = AI_ADDRCONFIG;
hints.ai_socktype = SOCK_STREAM; hints.ai_socktype = SOCK_STREAM;

View File

@ -76,8 +76,7 @@ public:
static void AcceptClient(SOCKET ls) static void AcceptClient(SOCKET ls)
{ {
for (;;) { for (;;) {
struct sockaddr_storage sin; struct sockaddr_storage sin{};
memset(&sin, 0, sizeof(sin));
socklen_t sin_len = sizeof(sin); socklen_t sin_len = sizeof(sin);
SOCKET s = accept(ls, (struct sockaddr*)&sin, &sin_len); SOCKET s = accept(ls, (struct sockaddr*)&sin, &sin_len);
if (s == INVALID_SOCKET) return; if (s == INVALID_SOCKET) return;

View File

@ -113,8 +113,7 @@ void NetworkUDPSocketHandler::ReceivePackets()
{ {
for (auto &s : this->sockets) { for (auto &s : this->sockets) {
for (int i = 0; i < 1000; i++) { // Do not infinitely loop when DoSing with UDP for (int i = 0; i < 1000; i++) { // Do not infinitely loop when DoSing with UDP
struct sockaddr_storage client_addr; struct sockaddr_storage client_addr{};
memset(&client_addr, 0, sizeof(client_addr));
/* The limit is UDP_MTU, but also allocate that much as we need to read the whole packet in one go. */ /* The limit is UDP_MTU, but also allocate that much as we need to read the whole packet in one go. */
Packet p(this, UDP_MTU, UDP_MTU); Packet p(this, UDP_MTU, UDP_MTU);

View File

@ -159,8 +159,7 @@ static sigset_t SetSignals(void(*handler)(int))
sigaddset(&sigs, signum); sigaddset(&sigs, signum);
} }
struct sigaction sa; struct sigaction sa{};
memset(&sa, 0, sizeof(sa));
sa.sa_flags = SA_RESTART; sa.sa_flags = SA_RESTART;
sigemptyset(&sa.sa_mask); sigemptyset(&sa.sa_mask);

View File

@ -146,8 +146,7 @@ static sigset_t SetSignals(void(*handler)(int))
sigaddset(&sigs, signum); sigaddset(&sigs, signum);
} }
struct sigaction sa; struct sigaction sa{};
memset(&sa, 0, sizeof(sa));
sa.sa_flags = SA_RESTART; sa.sa_flags = SA_RESTART;
sigemptyset(&sa.sa_mask); sigemptyset(&sa.sa_mask);

View File

@ -212,8 +212,7 @@ static const uint MAX_FRAMES = 64;
proc.pSymSetOptions(SYMOPT_DEFERRED_LOADS | SYMOPT_FAIL_CRITICAL_ERRORS | SYMOPT_UNDNAME); proc.pSymSetOptions(SYMOPT_DEFERRED_LOADS | SYMOPT_FAIL_CRITICAL_ERRORS | SYMOPT_UNDNAME);
/* Initialize starting stack frame from context record. */ /* Initialize starting stack frame from context record. */
STACKFRAME64 frame; STACKFRAME64 frame{};
memset(&frame, 0, sizeof(frame));
#ifdef _M_AMD64 #ifdef _M_AMD64
frame.AddrPC.Offset = ep->ContextRecord->Rip; frame.AddrPC.Offset = ep->ContextRecord->Rip;
frame.AddrFrame.Offset = ep->ContextRecord->Rbp; frame.AddrFrame.Offset = ep->ContextRecord->Rbp;

View File

@ -2557,7 +2557,7 @@ struct NoCompSaveFilter : SaveFilter {
/** Filter using Zlib compression. */ /** Filter using Zlib compression. */
struct ZlibLoadFilter : LoadFilter { struct ZlibLoadFilter : LoadFilter {
z_stream z; ///< Stream state we are reading from. z_stream z{}; ///< Stream state we are reading from.
uint8_t fread_buf[MEMORY_CHUNK_SIZE]; ///< Buffer for reading from the file. uint8_t fread_buf[MEMORY_CHUNK_SIZE]; ///< Buffer for reading from the file.
/** /**
@ -2566,7 +2566,6 @@ struct ZlibLoadFilter : LoadFilter {
*/ */
ZlibLoadFilter(std::shared_ptr<LoadFilter> chain) : LoadFilter(std::move(chain)) ZlibLoadFilter(std::shared_ptr<LoadFilter> chain) : LoadFilter(std::move(chain))
{ {
memset(&this->z, 0, sizeof(this->z));
if (inflateInit(&this->z) != Z_OK) SlError(STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR, "cannot initialize decompressor"); if (inflateInit(&this->z) != Z_OK) SlError(STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR, "cannot initialize decompressor");
} }
@ -2601,7 +2600,7 @@ struct ZlibLoadFilter : LoadFilter {
/** Filter using Zlib compression. */ /** Filter using Zlib compression. */
struct ZlibSaveFilter : SaveFilter { struct ZlibSaveFilter : SaveFilter {
z_stream z; ///< Stream state we are writing to. z_stream z{}; ///< Stream state we are writing to.
uint8_t fwrite_buf[MEMORY_CHUNK_SIZE]; ///< Buffer for writing to the file. uint8_t fwrite_buf[MEMORY_CHUNK_SIZE]; ///< Buffer for writing to the file.
/** /**
@ -2611,7 +2610,6 @@ struct ZlibSaveFilter : SaveFilter {
*/ */
ZlibSaveFilter(std::shared_ptr<SaveFilter> chain, uint8_t compression_level) : SaveFilter(std::move(chain)) ZlibSaveFilter(std::shared_ptr<SaveFilter> chain, uint8_t compression_level) : SaveFilter(std::move(chain))
{ {
memset(&this->z, 0, sizeof(this->z));
if (deflateInit(&this->z, compression_level) != Z_OK) SlError(STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR, "cannot initialize compressor"); if (deflateInit(&this->z, compression_level) != Z_OK) SlError(STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR, "cannot initialize compressor");
} }

View File

@ -45,7 +45,6 @@ public:
{ {
uint maxlines; uint maxlines;
uint y; uint y;
PcxHeader pcx;
bool success; bool success;
if (pixelformat == 32) { if (pixelformat == 32) {
@ -58,9 +57,8 @@ public:
if (!of.has_value()) return false; if (!of.has_value()) return false;
auto &f = *of; auto &f = *of;
memset(&pcx, 0, sizeof(pcx));
/* setup pcx header */ /* setup pcx header */
PcxHeader pcx{};
pcx.manufacturer = 10; pcx.manufacturer = 10;
pcx.version = 5; pcx.version = 5;
pcx.rle = 1; pcx.rle = 1;

View File

@ -75,8 +75,7 @@ public:
/* Try to add some game metadata to the PNG screenshot so /* Try to add some game metadata to the PNG screenshot so
* it's more useful for debugging and archival purposes. */ * it's more useful for debugging and archival purposes. */
png_text_struct text[2]; png_text_struct text[2]{};
memset(text, 0, sizeof(text));
text[0].key = const_cast<char *>("Software"); text[0].key = const_cast<char *>("Software");
text[0].text = const_cast<char *>(_openttd_revision.c_str()); text[0].text = const_cast<char *>(_openttd_revision.c_str());
text[0].text_length = _openttd_revision.size(); text[0].text_length = _openttd_revision.size();

View File

@ -680,8 +680,7 @@ static std::vector<char> Gunzip(std::span<char> input)
static const int BLOCKSIZE = 8192; static const int BLOCKSIZE = 8192;
std::vector<char> output; std::vector<char> output;
z_stream z; z_stream z{};
memset(&z, 0, sizeof(z));
z.next_in = reinterpret_cast<Bytef *>(input.data()); z.next_in = reinterpret_cast<Bytef *>(input.data());
z.avail_in = static_cast<uInt>(input.size()); z.avail_in = static_cast<uInt>(input.size());

View File

@ -152,9 +152,7 @@ bool VideoDriver_Win32Base::MakeWindow(bool full_screen, bool resize)
} }
if (full_screen) { if (full_screen) {
DEVMODE settings; DEVMODE settings{};
memset(&settings, 0, sizeof(settings));
settings.dmSize = sizeof(settings); settings.dmSize = sizeof(settings);
settings.dmFields = settings.dmFields =
DM_BITSPERPEL | DM_BITSPERPEL |