Commit b6dc6bcc authored by ChenHongyu's avatar ChenHongyu

避免内存泄漏

parent 87e8240c
...@@ -106,7 +106,9 @@ func remove(s []resolver.Address, addr string) ([]resolver.Address, bool) { ...@@ -106,7 +106,9 @@ func remove(s []resolver.Address, addr string) ([]resolver.Address, bool) {
for i := range s { for i := range s {
if s[i].Addr == addr { if s[i].Addr == addr {
s[i] = s[len(s)-1] s[i] = s[len(s)-1]
return s[:len(s)-1], true s[len(s)-1] = resolver.Address{}
s = s[:len(s)-1]
return s, true
} }
} }
return nil, false return nil, false
......
...@@ -140,8 +140,10 @@ func remove(s []resolver.Address, addr string, weight int) ([]resolver.Address, ...@@ -140,8 +140,10 @@ func remove(s []resolver.Address, addr string, weight int) ([]resolver.Address,
if s[i].Addr == addr { if s[i].Addr == addr {
count += 1 count += 1
s[i] = s[len(s)-count] s[i] = s[len(s)-count]
s[len(s)-count] = resolver.Address{}
if count == weight { if count == weight {
return s[:len(s)-count], true s = s[:len(s)-count]
return s, true
} }
} }
i-- i--
......
...@@ -123,7 +123,9 @@ func remove(s []resolver.Address, addr string) ([]resolver.Address, bool) { ...@@ -123,7 +123,9 @@ func remove(s []resolver.Address, addr string) ([]resolver.Address, bool) {
for i := range s { for i := range s {
if s[i].Addr == addr { if s[i].Addr == addr {
s[i] = s[len(s)-1] s[i] = s[len(s)-1]
return s[:len(s)-1], true s[len(s)-1] = resolver.Address{}
s = s[:len(s)-1]
return s, true
} }
} }
return nil, false return nil, false
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment