ifd_builder: Fix for error from SetStandard functions not adding new tags.

pull/3/head
Dustin Oprea 2018-06-11 04:42:54 -04:00
parent 7e10e5db27
commit 186facf99e
1 changed files with 16 additions and 4 deletions

View File

@ -1100,9 +1100,15 @@ func (ib *IfdBuilder) SetStandard(tagId uint16, value interface{}) (err error) {
bt := NewStandardBuilderTag(ib.ii, tagId, ib.byteOrder, value)
i, err := ib.Find(tagId)
log.PanicIf(err)
if err != nil {
if log.Is(err, ErrTagEntryNotFound) == false {
log.Panic(err)
}
ib.tags[i] = bt
ib.tags = append(ib.tags, bt)
} else {
ib.tags[i] = bt
}
return nil
}
@ -1122,9 +1128,15 @@ func (ib *IfdBuilder) SetStandardWithName(tagName string, value interface{}) (er
bt := NewStandardBuilderTagWithName(ib.ii, tagName, ib.byteOrder, value)
i, err := ib.Find(bt.tagId)
log.PanicIf(err)
if err != nil {
if log.Is(err, ErrTagEntryNotFound) == false {
log.Panic(err)
}
ib.tags[i] = bt
ib.tags = append(ib.tags, bt)
} else {
ib.tags[i] = bt
}
return nil
}