Skip to content

Commit

Permalink
refactor: Replace memset calls with array initialization
Browse files Browse the repository at this point in the history
  • Loading branch information
promag committed May 13, 2021
1 parent 9c891b6 commit 1c9255c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 14 deletions.
11 changes: 1 addition & 10 deletions src/protocol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,25 +87,16 @@ const static std::string allNetMessageTypes[] = {
};
const static std::vector<std::string> allNetMessageTypesVec(std::begin(allNetMessageTypes), std::end(allNetMessageTypes));

CMessageHeader::CMessageHeader()
{
memset(pchMessageStart, 0, MESSAGE_START_SIZE);
memset(pchCommand, 0, sizeof(pchCommand));
memset(pchChecksum, 0, CHECKSUM_SIZE);
}

CMessageHeader::CMessageHeader(const MessageStartChars& pchMessageStartIn, const char* pszCommand, unsigned int nMessageSizeIn)
{
memcpy(pchMessageStart, pchMessageStartIn, MESSAGE_START_SIZE);

// Copy the command name, zero-padding to COMMAND_SIZE bytes
// Copy the command name
size_t i = 0;
for (; i < COMMAND_SIZE && pszCommand[i] != 0; ++i) pchCommand[i] = pszCommand[i];
assert(pszCommand[i] == 0); // Assert that the command name passed in is not longer than COMMAND_SIZE
for (; i < COMMAND_SIZE; ++i) pchCommand[i] = 0;

nMessageSize = nMessageSizeIn;
memset(pchChecksum, 0, CHECKSUM_SIZE);
}

std::string CMessageHeader::GetCommand() const
Expand Down
8 changes: 4 additions & 4 deletions src/protocol.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class CMessageHeader
static constexpr size_t HEADER_SIZE = MESSAGE_START_SIZE + COMMAND_SIZE + MESSAGE_SIZE_SIZE + CHECKSUM_SIZE;
typedef unsigned char MessageStartChars[MESSAGE_START_SIZE];

explicit CMessageHeader();
explicit CMessageHeader() = default;

/** Construct a P2P message header from message-start characters, a command and the size of the message.
* @note Passing in a `pszCommand` longer than COMMAND_SIZE will result in a run-time assertion error.
Expand All @@ -50,10 +50,10 @@ class CMessageHeader

SERIALIZE_METHODS(CMessageHeader, obj) { READWRITE(obj.pchMessageStart, obj.pchCommand, obj.nMessageSize, obj.pchChecksum); }

char pchMessageStart[MESSAGE_START_SIZE];
char pchCommand[COMMAND_SIZE];
char pchMessageStart[MESSAGE_START_SIZE]{};
char pchCommand[COMMAND_SIZE]{};
uint32_t nMessageSize{std::numeric_limits<uint32_t>::max()};
uint8_t pchChecksum[CHECKSUM_SIZE];
uint8_t pchChecksum[CHECKSUM_SIZE]{};
};

/**
Expand Down

0 comments on commit 1c9255c

Please sign in to comment.