From 25524615d1246315ee12f8948d1b72acc80b00b9 Mon Sep 17 00:00:00 2001 From: Dustin Oprea Date: Sun, 12 Jan 2020 15:54:31 -0500 Subject: [PATCH] Fix for type-embedded strings not being encoded to JSON correctly in earlier Go's --- v2/assets/exif_read.json | 12 +++++++++--- v2/undefined/exif_9000_exif_version.go | 12 ++++++++---- v2/undefined/exif_A000_flashpix_version.go | 12 ++++++++---- v2/undefined/exif_iop_0002_interop_version.go | 12 ++++++++---- 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/v2/assets/exif_read.json b/v2/assets/exif_read.json index 6e0c338..d1a2257 100644 --- a/v2/assets/exif_read.json +++ b/v2/assets/exif_read.json @@ -248,7 +248,9 @@ "tag_type_id": 7, "tag_type_name": "UNDEFINED", "unit_count": 4, - "value": {}, + "value": { + "ExifVersion": "0230" + }, "value_string": "0230" }, { @@ -461,7 +463,9 @@ "tag_type_id": 7, "tag_type_name": "UNDEFINED", "unit_count": 4, - "value": {}, + "value": { + "FlashpixVersion": "0100" + }, "value_string": "0100" }, { @@ -541,7 +545,9 @@ "tag_type_id": 7, "tag_type_name": "UNDEFINED", "unit_count": 4, - "value": {}, + "value": { + "InteropVersion": "0100" + }, "value_string": "0100" }, { diff --git a/v2/undefined/exif_9000_exif_version.go b/v2/undefined/exif_9000_exif_version.go index aa4c4d0..c2e1da6 100644 --- a/v2/undefined/exif_9000_exif_version.go +++ b/v2/undefined/exif_9000_exif_version.go @@ -9,7 +9,7 @@ import ( ) type Tag9000ExifVersion struct { - string + ExifVersion string } func (Tag9000ExifVersion) EncoderName() string { @@ -17,7 +17,7 @@ func (Tag9000ExifVersion) EncoderName() string { } func (ev Tag9000ExifVersion) String() string { - return ev.string + return ev.ExifVersion } type Codec9000ExifVersion struct { @@ -35,7 +35,7 @@ func (Codec9000ExifVersion) Encode(value interface{}, byteOrder binary.ByteOrder log.Panicf("can only encode a Tag9000ExifVersion") } - return []byte(s.string), uint32(len(s.string)), nil + return []byte(s.ExifVersion), uint32(len(s.ExifVersion)), nil } func (Codec9000ExifVersion) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { @@ -50,7 +50,11 @@ func (Codec9000ExifVersion) Decode(valueContext *exifcommon.ValueContext) (value valueString, err := valueContext.ReadAsciiNoNul() log.PanicIf(err) - return Tag9000ExifVersion{valueString}, nil + ev := Tag9000ExifVersion{ + ExifVersion: valueString, + } + + return ev, nil } func init() { diff --git a/v2/undefined/exif_A000_flashpix_version.go b/v2/undefined/exif_A000_flashpix_version.go index dfb027e..1cca745 100644 --- a/v2/undefined/exif_A000_flashpix_version.go +++ b/v2/undefined/exif_A000_flashpix_version.go @@ -9,7 +9,7 @@ import ( ) type TagA000FlashpixVersion struct { - string + FlashpixVersion string } func (TagA000FlashpixVersion) EncoderName() string { @@ -17,7 +17,7 @@ func (TagA000FlashpixVersion) EncoderName() string { } func (fv TagA000FlashpixVersion) String() string { - return fv.string + return fv.FlashpixVersion } type CodecA000FlashpixVersion struct { @@ -35,7 +35,7 @@ func (CodecA000FlashpixVersion) Encode(value interface{}, byteOrder binary.ByteO log.Panicf("can only encode a TagA000FlashpixVersion") } - return []byte(s.string), uint32(len(s.string)), nil + return []byte(s.FlashpixVersion), uint32(len(s.FlashpixVersion)), nil } func (CodecA000FlashpixVersion) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { @@ -50,7 +50,11 @@ func (CodecA000FlashpixVersion) Decode(valueContext *exifcommon.ValueContext) (v valueString, err := valueContext.ReadAsciiNoNul() log.PanicIf(err) - return TagA000FlashpixVersion{valueString}, nil + fv := TagA000FlashpixVersion{ + FlashpixVersion: valueString, + } + + return fv, nil } func init() { diff --git a/v2/undefined/exif_iop_0002_interop_version.go b/v2/undefined/exif_iop_0002_interop_version.go index e10550c..afa21e1 100644 --- a/v2/undefined/exif_iop_0002_interop_version.go +++ b/v2/undefined/exif_iop_0002_interop_version.go @@ -9,7 +9,7 @@ import ( ) type Tag0002InteropVersion struct { - string + InteropVersion string } func (Tag0002InteropVersion) EncoderName() string { @@ -17,7 +17,7 @@ func (Tag0002InteropVersion) EncoderName() string { } func (iv Tag0002InteropVersion) String() string { - return iv.string + return iv.InteropVersion } type Codec0002InteropVersion struct { @@ -35,7 +35,7 @@ func (Codec0002InteropVersion) Encode(value interface{}, byteOrder binary.ByteOr log.Panicf("can only encode a Tag0002InteropVersion") } - return []byte(s.string), uint32(len(s.string)), nil + return []byte(s.InteropVersion), uint32(len(s.InteropVersion)), nil } func (Codec0002InteropVersion) Decode(valueContext *exifcommon.ValueContext) (value EncodeableValue, err error) { @@ -50,7 +50,11 @@ func (Codec0002InteropVersion) Decode(valueContext *exifcommon.ValueContext) (va valueString, err := valueContext.ReadAsciiNoNul() log.PanicIf(err) - return Tag0002InteropVersion{valueString}, nil + iv := Tag0002InteropVersion{ + InteropVersion: valueString, + } + + return iv, nil } func init() {