diff options
author | Zhaozhong Ni <nzz@google.com> | 2018-08-28 09:20:05 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2018-08-28 09:21:16 -0700 |
commit | d08ccdaaad0ff00622321957aa01cac149741005 (patch) | |
tree | e1f4ce2cfa29fa2b35a0888193c5d37b27c395e3 /pkg/state/encode.go | |
parent | ae648bafda2d82a6641e4a28bed34dae40d426ec (diff) |
sentry: avoid double counting map objects in save / restore stats.
PiperOrigin-RevId: 210551929
Change-Id: Idd05935bffc63b39166cc3751139aff61b689faa
Diffstat (limited to 'pkg/state/encode.go')
-rw-r--r-- | pkg/state/encode.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pkg/state/encode.go b/pkg/state/encode.go index 59914bef4..fd052db12 100644 --- a/pkg/state/encode.go +++ b/pkg/state/encode.go @@ -335,6 +335,12 @@ func (es *encodeState) encodeObject(obj reflect.Value, mapAsValue bool, format s object = &pb.Object{Value: &pb.Object_MapValue{es.encodeMap(obj)}} } else { // Encode a reference to the map. + // + // Remove the map object count here to avoid double + // counting, as this object will be counted again when + // it gets processed later. We do not add a reference + // count as the reference is artificial. + es.stats.Remove(obj) object = &pb.Object{Value: &pb.Object_RefValue{es.register(obj)}} } default: |