Clear current values of a field before assigning a new one via setValues()
Some tag fields allow to store additional values or other data related to the value. It likely doesn't make much sense to keep the this data when setting a new value.
This commit is contained in:
parent
7692eec9af
commit
5629a808be
|
@ -218,7 +218,9 @@ bool FieldMapBasedTag<ImplementationType>::internallySetValues(const FieldMapBas
|
|||
for (; valuesIterator != values.cend() && range.first != range.second; ++valuesIterator) {
|
||||
// replace existing value with non-empty specified value
|
||||
if (!valuesIterator->isEmpty()) {
|
||||
range.first->second.setValue(*valuesIterator);
|
||||
auto &field = range.first->second;
|
||||
field.clearValue();
|
||||
field.setValue(*valuesIterator);
|
||||
++range.first;
|
||||
}
|
||||
}
|
||||
|
@ -228,7 +230,7 @@ bool FieldMapBasedTag<ImplementationType>::internallySetValues(const FieldMapBas
|
|||
}
|
||||
// remove remaining existing values (there are more existing values than specified ones)
|
||||
for (; range.first != range.second; ++range.first) {
|
||||
range.first->second.setValue(TagValue());
|
||||
range.first->second.clearValue();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue