From f236d285b6e164f2948035491d88092ebe7af3f8 Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 22 Mar 2022 16:08:55 +0100 Subject: [PATCH] Fix not considering alignment of 8 bit when calculating size for indexedarray and enumedarray --- .../StructuredDataDef/CommonStructuredDataTypes.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.cpp b/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.cpp index c38f0617..276d5175 100644 --- a/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.cpp +++ b/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.cpp @@ -3,6 +3,7 @@ #include #include "CommonStructuredDataDef.h" +#include "Utils/Alignment.h" CommonStructuredDataType::CommonStructuredDataType() : m_category(CommonStructuredDataTypeCategory::UNKNOWN), @@ -58,7 +59,7 @@ size_t CommonStructuredDataType::GetSizeInBits(const CommonStructuredDataDef& de return 0u; } const auto& indexedArray = def.m_indexed_arrays[m_info.type_index]; - return indexedArray.m_element_size_in_bits * indexedArray.m_element_count; + return utils::Align(indexedArray.m_element_size_in_bits * indexedArray.m_element_count, 8u); } case CommonStructuredDataTypeCategory::ENUM_ARRAY: { @@ -68,7 +69,7 @@ size_t CommonStructuredDataType::GetSizeInBits(const CommonStructuredDataDef& de return 0u; } const auto& enumedArray = def.m_enumed_arrays[m_info.type_index]; - return enumedArray.m_element_size_in_bits * enumedArray.m_element_count; + return utils::Align(enumedArray.m_element_size_in_bits * enumedArray.m_element_count, 8u); } case CommonStructuredDataTypeCategory::UNKNOWN: