From 186facf99e460a1cf285fbdf800b494cfa767c0d Mon Sep 17 00:00:00 2001 From: Dustin Oprea Date: Mon, 11 Jun 2018 04:42:54 -0400 Subject: [PATCH] ifd_builder: Fix for error from SetStandard functions not adding new tags. --- ifd_builder.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/ifd_builder.go b/ifd_builder.go index 3ec259a..336350a 100644 --- a/ifd_builder.go +++ b/ifd_builder.go @@ -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 }