mirror of https://github.com/golang/go.git
expvar: add the missing deletion step for keys
In CL575777 I forgot to remove the key from the "sync.Map".
This did not cause the test to fail due to the lack of an associated
testcase. Now delete the key correctly and add the testcase.
Change-Id: I26f770966a828caa02f1766675756b67894dc195
GitHub-Last-Rev: a351ce095b
GitHub-Pull-Request: golang/go#66675
Reviewed-on: https://go-review.googlesource.com/c/go/+/576395
Auto-Submit: Keith Randall <khr@golang.org>
Reviewed-by: qiu laidongfeng2 <2645477756@qq.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
This commit is contained in:
parent
7dd8f39eba
commit
0f10ffec13
|
|
@ -249,6 +249,7 @@ func (v *Map) Delete(key string) {
|
|||
i, found := slices.BinarySearch(v.keys, key)
|
||||
if found {
|
||||
v.keys = slices.Delete(v.keys, i, i+1)
|
||||
v.m.Delete(key)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -199,6 +199,9 @@ func TestMapDelete(t *testing.T) {
|
|||
}
|
||||
|
||||
colors.Delete("red")
|
||||
if v := colors.Get("red"); v != nil {
|
||||
t.Errorf("removed red, Get should return nil; got %v", v)
|
||||
}
|
||||
n = 0
|
||||
colors.Do(func(KeyValue) { n++ })
|
||||
if n != 1 {
|
||||
|
|
@ -214,6 +217,9 @@ func TestMapDelete(t *testing.T) {
|
|||
|
||||
colors.Delete("blue")
|
||||
colors.Delete("blue")
|
||||
if v := colors.Get("blue"); v != nil {
|
||||
t.Errorf("removed blue, Get should return nil; got %v", v)
|
||||
}
|
||||
n = 0
|
||||
colors.Do(func(KeyValue) { n++ })
|
||||
if n != 0 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue