Avoid adding empty values when setting values and field does not exist
This commit is contained in:
parent
9ca4c57c0e
commit
532a805254
|
@ -226,7 +226,9 @@ bool FieldMapBasedTag<ImplementationType>::internallySetValues(const FieldMapBas
|
|||
}
|
||||
// add remaining specified values (there are more specified values than existing ones)
|
||||
for (; valuesIterator != values.cend(); ++valuesIterator) {
|
||||
m_fields.insert(std::make_pair(id, FieldType(id, *valuesIterator)));
|
||||
if (!valuesIterator->isEmpty()) {
|
||||
m_fields.insert(std::make_pair(id, FieldType(id, *valuesIterator)));
|
||||
}
|
||||
}
|
||||
// remove remaining existing values (there are more existing values than specified ones)
|
||||
for (; range.first != range.second; ++range.first) {
|
||||
|
|
|
@ -278,8 +278,10 @@ bool Mp4Tag::setValues(KnownField field, const std::vector<TagValue> &values)
|
|||
}
|
||||
}
|
||||
for (; valuesIterator != values.cend(); ++valuesIterator) {
|
||||
fields().emplace(std::piecewise_construct, std::forward_as_tuple(Mp4TagAtomIds::Extended),
|
||||
std::forward_as_tuple(extendedId.mean, extendedId.name, *valuesIterator));
|
||||
if (valuesIterator->isEmpty()) {
|
||||
fields().emplace(std::piecewise_construct, std::forward_as_tuple(Mp4TagAtomIds::Extended),
|
||||
std::forward_as_tuple(extendedId.mean, extendedId.name, *valuesIterator));
|
||||
}
|
||||
}
|
||||
for (; range.first != range.second; ++range.first) {
|
||||
range.first->second.clearValue();
|
||||
|
|
Loading…
Reference in New Issue