From f15e997f7bf76dd05f344aa6af908baecf643b4f Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 22 Mar 2022 16:07:43 +0100 Subject: [PATCH] Fix not setting enum element count for enumedarrays when parsing --- .../StructuredDataDef/CommonStructuredDataTypes.cpp | 6 +++--- src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.h | 2 +- .../Parsing/Sequence/StructuredDataStructScopeSequences.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.cpp b/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.cpp index 59f96e3b..c38f0617 100644 --- a/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.cpp +++ b/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.cpp @@ -144,12 +144,12 @@ bool operator>=(const CommonStructuredDataIndexedArray& lhs, const CommonStructu } CommonStructuredDataEnumedArray::CommonStructuredDataEnumedArray() - : CommonStructuredDataEnumedArray({}, 0u) + : CommonStructuredDataEnumedArray({}, 0u, 0u) { } -CommonStructuredDataEnumedArray::CommonStructuredDataEnumedArray(const CommonStructuredDataType type, const size_t enumIndex) - : CommonStructuredDataEnumedArray(type, enumIndex, 0u, 0u) +CommonStructuredDataEnumedArray::CommonStructuredDataEnumedArray(const CommonStructuredDataType type, const size_t enumIndex, const size_t elementCount) + : CommonStructuredDataEnumedArray(type, enumIndex, elementCount, 0u) { } diff --git a/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.h b/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.h index 4cc4fd3e..9352b0e4 100644 --- a/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.h +++ b/src/ObjCommon/StructuredDataDef/CommonStructuredDataTypes.h @@ -68,7 +68,7 @@ struct CommonStructuredDataEnumedArray size_t m_element_size_in_bits; CommonStructuredDataEnumedArray(); - CommonStructuredDataEnumedArray(CommonStructuredDataType type, size_t enumIndex); + CommonStructuredDataEnumedArray(CommonStructuredDataType type, size_t enumIndex, size_t elementCount); CommonStructuredDataEnumedArray(CommonStructuredDataType type, size_t enumIndex, size_t elementCount, size_t elementSizeInBits); friend bool operator<(const CommonStructuredDataEnumedArray& lhs, const CommonStructuredDataEnumedArray& rhs); diff --git a/src/ObjLoading/StructuredDataDef/Parsing/Sequence/StructuredDataStructScopeSequences.cpp b/src/ObjLoading/StructuredDataDef/Parsing/Sequence/StructuredDataStructScopeSequences.cpp index 382a2ebc..534a7a2e 100644 --- a/src/ObjLoading/StructuredDataDef/Parsing/Sequence/StructuredDataStructScopeSequences.cpp +++ b/src/ObjLoading/StructuredDataDef/Parsing/Sequence/StructuredDataStructScopeSequences.cpp @@ -150,7 +150,7 @@ namespace sdd::struct_scope_sequences const auto enumElementCount = _enum->ElementCount(); assert(enumElementCount > 0); - const CommonStructuredDataEnumedArray enumedArray(currentType, existingType->second.m_info.type_index); + const CommonStructuredDataEnumedArray enumedArray(currentType, existingType->second.m_info.type_index, _enum->ElementCount()); const auto existingEnumedArray = state->m_def_enumed_arrays.find(enumedArray); if (existingEnumedArray != state->m_def_enumed_arrays.end())