From 6f80fcd870b53ebfd6fd3f3525101e7022c6c6b4 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Mon, 20 Mar 2017 00:02:07 +0000 Subject: [PATCH] Use faster mapRead function everywhere --- report/counters.go | 13 ++++++++----- report/edge_metadatas.go | 13 ++++++++----- report/sets.go | 13 ++++++++----- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/report/counters.go b/report/counters.go index 48919ae60..82d2e92ef 100644 --- a/report/counters.go +++ b/report/counters.go @@ -160,11 +160,14 @@ func (c *Counters) CodecEncodeSelf(encoder *codec.Encoder) { // CodecDecodeSelf implements codec.Selfer func (c *Counters) CodecDecodeSelf(decoder *codec.Decoder) { - in := map[string]int{} - if err := decoder.Decode(&in); err != nil { - return - } - *c = Counters{}.fromIntermediate(in) + out := mapRead(decoder, func(isNil bool) interface{} { + var value int + if !isNil { + decoder.Decode(&value) + } + return value + }) + *c = Counters{out} } // MarshalJSON shouldn't be used, use CodecEncodeSelf instead diff --git a/report/edge_metadatas.go b/report/edge_metadatas.go index fd8d7a448..2609d8e85 100644 --- a/report/edge_metadatas.go +++ b/report/edge_metadatas.go @@ -177,11 +177,14 @@ func (c *EdgeMetadatas) CodecEncodeSelf(encoder *codec.Encoder) { // CodecDecodeSelf implements codec.Selfer func (c *EdgeMetadatas) CodecDecodeSelf(decoder *codec.Decoder) { - in := map[string]EdgeMetadata{} - if err := decoder.Decode(&in); err != nil { - return - } - *c = EdgeMetadatas{}.fromIntermediate(in) + out := mapRead(decoder, func(isNil bool) interface{} { + var value EdgeMetadata + if !isNil { + decoder.Decode(&value) + } + return value + }) + *c = EdgeMetadatas{out} } // MarshalJSON shouldn't be used, use CodecEncodeSelf instead diff --git a/report/sets.go b/report/sets.go index bd363e95e..821d6a223 100644 --- a/report/sets.go +++ b/report/sets.go @@ -177,11 +177,14 @@ func (s *Sets) CodecEncodeSelf(encoder *codec.Encoder) { // CodecDecodeSelf implements codec.Selfer func (s *Sets) CodecDecodeSelf(decoder *codec.Decoder) { - in := map[string]StringSet{} - if err := decoder.Decode(&in); err != nil { - return - } - *s = Sets{}.fromIntermediate(in) + out := mapRead(decoder, func(isNil bool) interface{} { + var value StringSet + if !isNil { + decoder.Decode(&value) + } + return value + }) + *s = Sets{out} } // MarshalJSON shouldn't be used, use CodecEncodeSelf instead