From d35834c4e59934bec8b44744f595bbd80a4b6c96 Mon Sep 17 00:00:00 2001 From: bb-2 <43212522+bb-2@users.noreply.github.com> Date: Wed, 6 May 2020 08:49:44 -0400 Subject: [PATCH] move avm cache puts after error checking and catch err on status unmarshalling --- vms/components/ava/state.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/vms/components/ava/state.go b/vms/components/ava/state.go index a9c5424..627cc56 100644 --- a/vms/components/ava/state.go +++ b/vms/components/ava/state.go @@ -90,7 +90,9 @@ func (s *State) Status(id ids.ID) (choices.Status, error) { } var status choices.Status - s.Codec.Unmarshal(bytes, &status) + if err := s.Codec.Unmarshal(bytes, &status); err != nil { + return choices.Unknown, err + } s.Cache.Put(id, status) return status, nil @@ -103,12 +105,12 @@ func (s *State) SetStatus(id ids.ID, status choices.Status) error { return s.DB.Delete(id.Bytes()) } - s.Cache.Put(id, status) - bytes, err := s.Codec.Marshal(status) if err != nil { return err } + + s.Cache.Put(id, status) return s.DB.Put(id.Bytes(), bytes) } @@ -142,12 +144,11 @@ func (s *State) SetIDs(id ids.ID, idSlice []ids.ID) error { return s.DB.Delete(id.Bytes()) } - s.Cache.Put(id, idSlice) - bytes, err := s.Codec.Marshal(idSlice) if err != nil { return err } + s.Cache.Put(id, idSlice) return s.DB.Put(id.Bytes(), bytes) }