mirror of https://github.com/dsoprea/go-exif.git
undefined/accessor.go: Drop unnecessary parameters from Decode()
parent
6554f89879
commit
e7e1e89ffb
|
@ -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!"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue