From 03ea563afef0ab35dade6118331cc4bffbd3ef59 Mon Sep 17 00:00:00 2001 From: John Date: Sat, 29 Jan 2022 12:43:34 +0100 Subject: [PATCH] fix getName() and getField() with ignored count --- src/lib/ebus/data.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/lib/ebus/data.cpp b/src/lib/ebus/data.cpp index 5f60f0e4..a49d26c9 100644 --- a/src/lib/ebus/data.cpp +++ b/src/lib/ebus/data.cpp @@ -971,7 +971,7 @@ size_t DataFieldSet::getCount(PartType partType, const char* fieldName) const { } string DataFieldSet::getName(ssize_t fieldIndex) const { - if (fieldIndex < (ssize_t)m_ignoredCount) { + if (fieldIndex < 0) { return m_name; } if ((size_t)fieldIndex + m_ignoredCount >= m_fields.size()) { @@ -987,7 +987,7 @@ string DataFieldSet::getName(ssize_t fieldIndex) const { continue; } remain--; - if (remain == 0) { + if (remain <= 0) { return field->getName(-1); } } @@ -998,10 +998,7 @@ string DataFieldSet::getName(ssize_t fieldIndex) const { } const SingleDataField* DataFieldSet::getField(ssize_t fieldIndex) const { - if (fieldIndex < (ssize_t)m_ignoredCount) { - return nullptr; - } - if ((size_t)fieldIndex + m_ignoredCount >= m_fields.size()) { + if (fieldIndex < 0 || (size_t)fieldIndex + m_ignoredCount >= m_fields.size()) { return nullptr; } if (m_ignoredCount == 0) { @@ -1013,7 +1010,7 @@ const SingleDataField* DataFieldSet::getField(ssize_t fieldIndex) const { continue; } remain--; - if (remain == 0) { + if (remain <= 0) { return field; } }