From 3e22c2e779ae05643c6b295e2b154000dd3a389a Mon Sep 17 00:00:00 2001 From: mjpt777 Date: Fri, 16 Feb 2024 11:32:12 +0000 Subject: [PATCH] [C++] Code tidy up and address Issue #970. --- sbe-tool/src/main/cpp/otf/IrDecoder.h | 29 ++++++++++++------- sbe-tool/src/main/cpp/otf/OtfMessageDecoder.h | 21 ++++++-------- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/sbe-tool/src/main/cpp/otf/IrDecoder.h b/sbe-tool/src/main/cpp/otf/IrDecoder.h index 0b5c04866..b4ed9cefd 100644 --- a/sbe-tool/src/main/cpp/otf/IrDecoder.h +++ b/sbe-tool/src/main/cpp/otf/IrDecoder.h @@ -48,9 +48,7 @@ namespace sbe { namespace otf { class IrDecoder { public: - IrDecoder() - { - } + IrDecoder() = default; int decode(char *irBuffer, std::uint64_t length) { @@ -106,11 +104,13 @@ class IrDecoder std::shared_ptr> result; std::for_each(m_messages.begin(), m_messages.end(), - [&](std::shared_ptr> tokens) + [&](const std::shared_ptr> &tokens) { Token &token = tokens->at(0); - if (token.signal() == Signal::BEGIN_MESSAGE && token.fieldId() == id && token.tokenVersion() == version) + if (token.signal() == Signal::BEGIN_MESSAGE && + token.fieldId() == id && + token.tokenVersion() <= version) { result = tokens; } @@ -124,7 +124,7 @@ class IrDecoder std::shared_ptr> result; std::for_each(m_messages.begin(), m_messages.end(), - [&](std::shared_ptr> tokens) + [&](const std::shared_ptr> &tokens) { Token &token = tokens->at(0); @@ -191,9 +191,14 @@ class IrDecoder FrameCodec frame; std::uint64_t offset = 0; - char tmp[256]; + char tmp[256] = {}; - frame.wrapForDecode(m_buffer.get(), offset, frame.sbeBlockLength(), frame.sbeSchemaVersion(), m_length); + frame.wrapForDecode( + m_buffer.get(), + offset, + FrameCodec::sbeBlockLength(), + FrameCodec::sbeSchemaVersion(), + m_length); frame.getPackageName(tmp, sizeof(tmp)); @@ -229,7 +234,11 @@ class IrDecoder TokenCodec tokenCodec; tokenCodec.wrapForDecode( - m_buffer.get(), offset, tokenCodec.sbeBlockLength(), tokenCodec.sbeSchemaVersion(), m_length); + m_buffer.get(), + offset, + TokenCodec::sbeBlockLength(), + TokenCodec::sbeSchemaVersion(), + m_length); auto signal = static_cast(tokenCodec.signal()); auto type = static_cast(tokenCodec.primitiveType()); @@ -240,7 +249,7 @@ class IrDecoder std::int32_t id = tokenCodec.fieldId(); std::int32_t version = tokenCodec.tokenVersion(); std::int32_t componentTokenCount = tokenCodec.componentTokenCount(); - char tmpBuffer[256]; + char tmpBuffer[256] = {}; std::uint64_t tmpLen = 0; tmpLen = tokenCodec.getName(tmpBuffer, sizeof(tmpBuffer)); diff --git a/sbe-tool/src/main/cpp/otf/OtfMessageDecoder.h b/sbe-tool/src/main/cpp/otf/OtfMessageDecoder.h index 8b59b5df7..edd65bff1 100644 --- a/sbe-tool/src/main/cpp/otf/OtfMessageDecoder.h +++ b/sbe-tool/src/main/cpp/otf/OtfMessageDecoder.h @@ -157,14 +157,13 @@ static void decodeComposite( std::uint64_t actingVersion, TokenListener &listener) { - listener.onBeginComposite(fieldToken, *tokens.get(), tokenIndex, toIndex); + listener.onBeginComposite(fieldToken, *tokens, tokenIndex, toIndex); for (size_t i = tokenIndex + 1; i < toIndex;) { Token &token = tokens->at(i); const size_t nextFieldIndex = i + token.componentTokenCount(); - - const std::size_t offset = static_cast(token.offset()); + const auto offset = static_cast(token.offset()); switch (token.signal()) { @@ -183,12 +182,12 @@ static void decodeComposite( case Signal::BEGIN_ENUM: listener.onEnum( - fieldToken, buffer + bufferIndex + offset, *tokens.get(), i, nextFieldIndex - 1, actingVersion); + fieldToken, buffer + bufferIndex + offset, *tokens, i, nextFieldIndex - 1, actingVersion); break; case Signal::BEGIN_SET: listener.onBitSet( - fieldToken, buffer + bufferIndex + offset, *tokens.get(), i, nextFieldIndex - 1, actingVersion); + fieldToken, buffer + bufferIndex + offset, *tokens, i, nextFieldIndex - 1, actingVersion); break; case Signal::ENCODING: @@ -202,7 +201,7 @@ static void decodeComposite( i += token.componentTokenCount(); } - listener.onEndComposite(fieldToken, *tokens.get(), tokenIndex, toIndex); + listener.onEndComposite(fieldToken, *tokens, tokenIndex, toIndex); } template @@ -246,13 +245,11 @@ static size_t decodeFields( break; case Signal::BEGIN_ENUM: - listener.onEnum( - fieldToken, buffer + offset, *tokens.get(), tokenIndex, nextFieldIndex - 2, actingVersion); + listener.onEnum(fieldToken, buffer + offset, *tokens, tokenIndex, nextFieldIndex - 2, actingVersion); break; case Signal::BEGIN_SET: - listener.onBitSet( - fieldToken, buffer + offset, *tokens.get(), tokenIndex, nextFieldIndex - 2, actingVersion); + listener.onBitSet(fieldToken, buffer + offset, *tokens, tokenIndex, nextFieldIndex - 2, actingVersion); break; case Signal::ENCODING: @@ -342,7 +339,7 @@ std::pair decodeGroups( const bool isPresent = token.tokenVersion() <= static_cast(actingVersion); Token &dimensionsTypeComposite = tokens->at(tokenIndex + 1); - std::size_t dimensionsLength = static_cast(dimensionsTypeComposite.encodedLength()); + auto dimensionsLength = static_cast(dimensionsTypeComposite.encodedLength()); if ((bufferIndex + dimensionsLength) > length) { @@ -391,7 +388,7 @@ std::pair decodeGroups( tokenIndex += token.componentTokenCount(); } - return std::pair(bufferIndex, tokenIndex); + return { bufferIndex, tokenIndex }; } /**