From c1d98ba59cd3d237fb7ca83a62d9820b71cf76c4 Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Sun, 17 Apr 2016 10:28:21 +0100 Subject: [PATCH] refactor: extract a helper --- ipam/ring/ring.go | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/ipam/ring/ring.go b/ipam/ring/ring.go index 857dd033..aadd30f0 100644 --- a/ipam/ring/ring.go +++ b/ipam/ring/ring.go @@ -239,10 +239,15 @@ func (r *Ring) Merge(gossip Ring) (bool, error) { // indication whether the merge resulted in any changes, i.e. the // result differs from the original. func (es entries) merge(other entries, ourPeer mesh.PeerName) (result entries, updated bool, err error) { - addToResult := func(e entry) { result = append(result, &e) } - var mine, theirs *entry var previousOwner *mesh.PeerName + addToResult := func(e entry) { result = append(result, &e) } + addTheirs := func(e entry) { + addToResult(e) + updated = true + previousOwner = nil + } + // i is index into es; j is index into other var i, j int for i < len(es) && j < len(other) { @@ -258,9 +263,7 @@ func (es entries) merge(other entries, ourPeer mesh.PeerName) (result entries, u err = errEntryInMyRange(theirs) return } - addToResult(*theirs) - updated = true - previousOwner = nil + addTheirs(*theirs) j++ case mine.Token == theirs.Token: // merge @@ -277,9 +280,7 @@ func (es entries) merge(other entries, ourPeer mesh.PeerName) (result entries, u err = errNewerVersion(mine, theirs) return } - addToResult(*theirs) - updated = true - previousOwner = nil + addTheirs(*theirs) } i++ j++ @@ -300,9 +301,7 @@ func (es entries) merge(other entries, ourPeer mesh.PeerName) (result entries, u err = errEntryInMyRange(theirs) return } - addToResult(*theirs) - updated = true - previousOwner = nil + addTheirs(*theirs) } return