fix getName() and getField() with ignored count

This commit is contained in:
John
2022-01-29 12:43:34 +01:00
parent 7128a380f3
commit 03ea563afe
+4 -7
View File
@@ -971,7 +971,7 @@ size_t DataFieldSet::getCount(PartType partType, const char* fieldName) const {
} }
string DataFieldSet::getName(ssize_t fieldIndex) const { string DataFieldSet::getName(ssize_t fieldIndex) const {
if (fieldIndex < (ssize_t)m_ignoredCount) { if (fieldIndex < 0) {
return m_name; return m_name;
} }
if ((size_t)fieldIndex + m_ignoredCount >= m_fields.size()) { if ((size_t)fieldIndex + m_ignoredCount >= m_fields.size()) {
@@ -987,7 +987,7 @@ string DataFieldSet::getName(ssize_t fieldIndex) const {
continue; continue;
} }
remain--; remain--;
if (remain == 0) { if (remain <= 0) {
return field->getName(-1); return field->getName(-1);
} }
} }
@@ -998,10 +998,7 @@ string DataFieldSet::getName(ssize_t fieldIndex) const {
} }
const SingleDataField* DataFieldSet::getField(ssize_t fieldIndex) const { const SingleDataField* DataFieldSet::getField(ssize_t fieldIndex) const {
if (fieldIndex < (ssize_t)m_ignoredCount) { if (fieldIndex < 0 || (size_t)fieldIndex + m_ignoredCount >= m_fields.size()) {
return nullptr;
}
if ((size_t)fieldIndex + m_ignoredCount >= m_fields.size()) {
return nullptr; return nullptr;
} }
if (m_ignoredCount == 0) { if (m_ignoredCount == 0) {
@@ -1013,7 +1010,7 @@ const SingleDataField* DataFieldSet::getField(ssize_t fieldIndex) const {
continue; continue;
} }
remain--; remain--;
if (remain == 0) { if (remain <= 0) {
return field; return field;
} }
} }