From 0ef9693b72e7b44cdadb1f9c7ffe71097e6dd81e Mon Sep 17 00:00:00 2001 From: Erik Rigtorp Date: Thu, 3 Oct 2019 18:29:11 -0700 Subject: [PATCH] [C++] Make sure all members are initilized Compiler dead store elimination optimization pass should remove any unncessary stores when the codecs are used correctly. With incorrect use it will give predictable behavior. --- .../sbe/generation/cpp/CppGenerator.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java index 506b5d8ea3..b65d701f65 100755 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java @@ -197,14 +197,14 @@ private static void generateGroupClassHeader( indent + "class %1$s\n" + indent + "{\n" + indent + "private:\n" + - indent + " char *m_buffer;\n" + - indent + " std::uint64_t m_bufferLength;\n" + - indent + " std::uint64_t *m_positionPtr;\n" + - indent + " std::uint64_t m_blockLength;\n" + - indent + " std::uint64_t m_count;\n" + - indent + " std::uint64_t m_index;\n" + - indent + " std::uint64_t m_offset;\n" + - indent + " std::uint64_t m_actingVersion;\n\n" + + indent + " char *m_buffer = nullptr;\n" + + indent + " std::uint64_t m_bufferLength = 0;\n" + + indent + " std::uint64_t *m_positionPtr = nullptr;\n" + + indent + " std::uint64_t m_blockLength = 0;\n" + + indent + " std::uint64_t m_count = 0;\n" + + indent + " std::uint64_t m_index = 0;\n" + + indent + " std::uint64_t m_offset = 0;\n" + + indent + " std::uint64_t m_actingVersion = 0;\n\n" + indent + " SBE_NODISCARD std::uint64_t *sbePositionPtr() SBE_NOEXCEPT\n" + indent + " {\n" + @@ -1619,9 +1619,9 @@ private CharSequence generateFixedFlyweightCode(final String className, final in return String.format( "private:\n" + " char *m_buffer = nullptr;\n" + - " std::uint64_t m_bufferLength;\n" + + " std::uint64_t m_bufferLength = 0;\n" + " std::uint64_t m_offset = 0;\n" + - " std::uint64_t m_actingVersion;\n\n" + + " std::uint64_t m_actingVersion = 0;\n\n" + "public:\n" + " enum MetaAttribute\n" + @@ -1772,8 +1772,8 @@ private CharSequence generateMessageFlyweightCode(final String className, final " char *m_buffer = nullptr;\n" + " std::uint64_t m_bufferLength = 0;\n" + " std::uint64_t m_offset = 0;\n" + - " std::uint64_t m_position;\n" + - " std::uint64_t m_actingVersion;\n\n" + + " std::uint64_t m_position = 0;\n" + + " std::uint64_t m_actingVersion = 0;\n\n" + " inline std::uint64_t *sbePositionPtr() SBE_NOEXCEPT\n" + " {\n" +