From c8a41f09994ba44ad77e32e2418a31fe9bb8b300 Mon Sep 17 00:00:00 2001 From: John Date: Fri, 5 Nov 2021 11:05:32 +0100 Subject: [PATCH] fix previous commit: keep types without WLS flag stored with length suffix as well --- src/lib/ebus/datatype.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/ebus/datatype.cpp b/src/lib/ebus/datatype.cpp index 2f3c8b83..8196ca57 100755 --- a/src/lib/ebus/datatype.cpp +++ b/src/lib/ebus/datatype.cpp @@ -1151,7 +1151,7 @@ void DataTypeList::clear() { } result_t DataTypeList::add(const DataType* dataType) { - if (!dataType->isAdjustableLength() && dataType->hasFlag(WLS)) { + if (!dataType->isAdjustableLength()) { ostringstream str; size_t bitCount = dataType->getBitCount(); str << dataType->getId() << LENGTH_SEPARATOR << static_cast(bitCount >= 8 ? bitCount/8 : bitCount); @@ -1159,9 +1159,9 @@ result_t DataTypeList::add(const DataType* dataType) { return RESULT_ERR_DUPLICATE_NAME; // duplicate key } m_typesByIdLength[str.str()] = dataType; - if (m_typesById.find(dataType->getId()) != m_typesById.end()) { + if (dataType->hasFlag(WLS) || m_typesById.find(dataType->getId()) != m_typesById.end()) { m_cleanupTypes.push_back(dataType); - return RESULT_OK; // only store first one as default + return RESULT_OK; // only store first one without WLS flag as default } } else if (m_typesById.find(dataType->getId()) != m_typesById.end()) { return RESULT_ERR_DUPLICATE_NAME; // duplicate key