From 8d502f527df56d3e8dcd5c4ee4f50e8257f3f9b5 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Sun, 15 Oct 2017 15:38:46 +0000 Subject: [PATCH] Fix up Sets to compile cleanly --- report/sets.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/report/sets.go b/report/sets.go index d72080c84..243529305 100644 --- a/report/sets.go +++ b/report/sets.go @@ -156,7 +156,11 @@ func (m *Sets) CodecEncodeSelf(encoder *codec.Encoder) { z.EncSendContainerState(containerMapKey) r.EncodeString(cUTF8, val.key) z.EncSendContainerState(containerMapValue) - val.Value.CodecEncodeSelf(encoder) + // Strange little dance via an interface so we can call CodecEncodeSelf before codecgen runs + var vi interface{} = &val.Value + if vs, ok := vi.(codec.Selfer); ok { + vs.CodecEncodeSelf(encoder) + } } z.EncSendContainerState(containerMapEnd) } @@ -191,7 +195,11 @@ func (m *Sets) CodecDecodeSelf(decoder *codec.Decoder) { m.entries[i].key = key z.DecSendContainerState(containerMapValue) if !r.TryDecodeAsNil() { - m.entries[i].Value.CodecDecodeSelf(decoder) + // Strange little dance via an interface so we can call CodecEncodeSelf before codecgen runs + var vi interface{} = &m.entries[i].Value + if vs, ok := vi.(codec.Selfer); ok { + vs.CodecDecodeSelf(decoder) + } } } z.DecSendContainerState(containerMapEnd)