]> Cypherpunks repositories - gostls13.git/commitdiff
container/heap: avoid up() invoke if down() success at heap.Remove()
authorwuyunzhou <yunzhouwu@gmail.com>
Sat, 13 May 2017 07:41:15 +0000 (15:41 +0800)
committerRobert Griesemer <gri@golang.org>
Sat, 13 May 2017 19:10:24 +0000 (19:10 +0000)
Change-Id: I6c210e0c23ca533e1f303f88ef9dcb629a294a2a
Reviewed-on: https://go-review.googlesource.com/43472
Reviewed-by: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>

src/container/heap/heap.go

index af05261c10a95d39849b575eb92fb083eac653cd..b2c64276c82db5eac755b9af8a0cf0f19472e762 100644 (file)
@@ -72,8 +72,9 @@ func Remove(h Interface, i int) interface{} {
        n := h.Len() - 1
        if n != i {
                h.Swap(i, n)
-               down(h, i, n)
-               up(h, i)
+               if !down(h, i, n) {
+                       up(h, i)
+               }
        }
        return h.Pop()
 }