undefined/accessor.go: Drop unnecessary parameters from Decode()

for/master
Dustin Oprea 2020-01-05 22:55:24 -05:00
parent 6554f89879
commit e7e1e89ffb
6 changed files with 11 additions and 23 deletions

View File

@ -94,7 +94,7 @@ func TestVisit(t *testing.T) {
valueString := ""
if tagType == exifcommon.TypeUndefined {
value, err := exifundefined.Decode(fqIfdPath, tagId, valueContext, valueContext.ByteOrder())
value, err := exifundefined.Decode(valueContext)
if err != nil {
if err == exifcommon.ErrUnhandledUnknownTypedTag {
valueString = "!UNDEFINED!"

View File

@ -1122,7 +1122,7 @@ func (ib *IfdBuilder) AddTagsFromExisting(ifd *Ifd, includeTagIds []uint16, excl
// cleanest way of using what we already have to both determine
// if we support this tag and producing the bytes for it.
value, err := exifundefined.Decode(ite.IfdPath, ite.TagId, valueContext, ib.byteOrder)
value, err := exifundefined.Decode(valueContext)
if err != nil {
if err == exifcommon.ErrUnhandledUnknownTypedTag {
// It's an undefined-type tag that we don't handle. If

View File

@ -1499,11 +1499,7 @@ func TestIfdBuilder_CreateIfdBuilderFromExistingChain_RealData(t *testing.T) {
originalIndex.RootIfd.addressableData,
originalIndex.RootIfd.ByteOrder)
value, err := exifundefined.Decode(
originalIte.IfdPath,
originalIte.TagId,
valueContext,
originalIndex.RootIfd.ByteOrder)
value, err := exifundefined.Decode(valueContext)
log.PanicIf(err)
@ -1527,11 +1523,7 @@ func TestIfdBuilder_CreateIfdBuilderFromExistingChain_RealData(t *testing.T) {
recoveredIndex.RootIfd.addressableData,
recoveredIndex.RootIfd.ByteOrder)
value, err := exifundefined.Decode(
recoveredIte.IfdPath,
recoveredIte.TagId,
valueContext,
recoveredIndex.RootIfd.ByteOrder)
value, err := exifundefined.Decode(valueContext)
log.PanicIf(err)

View File

@ -190,7 +190,7 @@ func (ie *IfdEnumerate) parseTag(fqIfdPath string, tagPosition int, enumerator *
valueContext := ie.GetValueContext(ite)
if ite.TagType == exifcommon.TypeUndefined {
value, err := exifundefined.Decode(ite.IfdPath, ite.TagId, valueContext, ie.byteOrder)
value, err := exifundefined.Decode(valueContext)
if err != nil {
if err == exifcommon.ErrUnhandledUnknownTypedTag {
ite.isUnhandledUnknown = true

View File

@ -78,7 +78,7 @@ func (ite *IfdTagEntry) ValueString(addressableData []byte, byteOrder binary.Byt
if ite.TagType == exifcommon.TypeUndefined {
var err error
value, err := exifundefined.Decode(ite.IfdPath, ite.TagId, valueContext, byteOrder)
value, err := exifundefined.Decode(valueContext)
log.PanicIf(err)
s := value.(fmt.Stringer)
@ -114,7 +114,7 @@ func (ite *IfdTagEntry) ValueBytes(addressableData []byte, byteOrder binary.Byte
// (obviously). However, here, in order to produce the list of bytes, we
// need to coerce whatever `Undefined()` returns.
if ite.TagType == exifcommon.TypeUndefined {
value, err := exifundefined.Decode(ite.IfdPath, ite.TagId, valueContext, byteOrder)
value, err := exifundefined.Decode(valueContext)
log.PanicIf(err)
ve := exifcommon.NewValueEncoder(byteOrder)
@ -148,7 +148,7 @@ func (ite *IfdTagEntry) Value(addressableData []byte, byteOrder binary.ByteOrder
if ite.TagType == exifcommon.TypeUndefined {
var err error
value, err = exifundefined.Decode(ite.IfdPath, ite.TagId, valueContext, byteOrder)
value, err = exifundefined.Decode(valueContext)
log.PanicIf(err)
} else {
var err error

View File

@ -29,7 +29,7 @@ func Encode(value EncodeableValue, byteOrder binary.ByteOrder) (encoded []byte,
}
// UndefinedValue knows how to resolve the value for most unknown-type tags.
func Decode(ifdPath string, tagId uint16, valueContext *exifcommon.ValueContext, byteOrder binary.ByteOrder) (value EncodeableValue, err error) {
func Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) {
defer func() {
if state := recover(); state != nil {
err = log.Wrap(state.(error))
@ -37,8 +37,8 @@ func Decode(ifdPath string, tagId uint16, valueContext *exifcommon.ValueContext,
}()
uth := UndefinedTagHandle{
IfdPath: ifdPath,
TagId: tagId,
IfdPath: valueContext.IfdPath(),
TagId: valueContext.TagId(),
}
decoder, found := decoders[uth]
@ -48,10 +48,6 @@ func Decode(ifdPath string, tagId uint16, valueContext *exifcommon.ValueContext,
return nil, exifcommon.ErrUnhandledUnknownTypedTag
}
if valueContext.IfdPath() != ifdPath || valueContext.TagId() != tagId {
log.Panicf("IFD-path for codec does not match value-context: [%s] (0x%04x) != [%s] (0x%04x)", ifdPath, tagId, valueContext.IfdPath(), valueContext.TagId())
}
value, err = decoder.Decode(valueContext)
log.PanicIf(err)