diff options
author | Rasmus Dahlberg <rasmus.dahlberg@kau.se> | 2021-02-18 17:51:05 +0100 |
---|---|---|
committer | Rasmus Dahlberg <rasmus.dahlberg@kau.se> | 2021-02-18 17:51:05 +0100 |
commit | 55a0a1c9c2a6df4f05d539f0fc67a8c7052a338f (patch) | |
tree | 7a3608849a876338d2c4ed445bd0cda7182654ef /type.go | |
parent | 86573a8daaa9c0972c088e8b2ddec6fdb95d86d2 (diff) |
fixed unexpected reflect behavior
After tls.Unmarshal() an empty slice is not assigned the nil value, but rather
a slice of zero length. It is in contrast to NewTreeHeadV1(), which assigns a
nil value. Therefore, reflect.DeepEqual() considers them to be different.
Fixed by assigning an empty tree head extension as `make([]byte, 0)`,
and not looking for nil values but rather zero-length values with len().
Further read: "Note that a non-nil empty slice and a nil slice [...] are
not deeply equal." (https://golang.org/pkg/reflect/#DeepEqual).
Diffstat (limited to 'type.go')
-rw-r--r-- | type.go | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -282,7 +282,7 @@ func NewTreeHeadV1(lr *types.LogRootV1) *TreeHeadV1 { uint64(lr.TimestampNanos / 1000 / 1000), uint64(lr.TreeSize), NodeHash{lr.RootHash}, - nil, + make([]byte, 0), } } |