mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-18 02:40:45 +00:00
fix error panic in func RemoveItemFromArray
This commit is contained in:
parent
3fc36efeb3
commit
21656d1855
2 changed files with 12 additions and 4 deletions
|
|
@ -249,12 +249,20 @@ func RemoveItemFromArray(array []Address, items []Address) []Address {
|
||||||
if items == nil {
|
if items == nil {
|
||||||
return array
|
return array
|
||||||
}
|
}
|
||||||
for i, value := range array {
|
i := 0;
|
||||||
|
for i < len(array) {
|
||||||
|
value := array[i]
|
||||||
|
remove := false
|
||||||
for _, item := range items {
|
for _, item := range items {
|
||||||
if value == item {
|
if value == item {
|
||||||
array = append(array[:i], array[i+1:]...)
|
array = append(array[:i], array[i+1:]...)
|
||||||
|
remove = true
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if !remove {
|
||||||
|
i++
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return array
|
return array
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -151,10 +151,10 @@ func BenchmarkAddressHex(b *testing.B) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRemoveItemInArray(t *testing.T) {
|
func TestRemoveItemInArray(t *testing.T) {
|
||||||
array := []Address{HexToAddress("0x0000000"), HexToAddress("0x0000001"), HexToAddress("0x0000002")}
|
array := []Address{HexToAddress("0x0000003"),HexToAddress("0x0000001"), HexToAddress("0x0000002"),HexToAddress("0x0000003")}
|
||||||
remove := []Address{HexToAddress("0x0000000"), HexToAddress("0x0000004"), HexToAddress("0x0000003")}
|
remove := []Address{HexToAddress("0x0000002"), HexToAddress("0x0000004"), HexToAddress("0x0000003")}
|
||||||
array = RemoveItemFromArray(array, remove)
|
array = RemoveItemFromArray(array, remove)
|
||||||
if len(array) != 2 {
|
if len(array) != 1 {
|
||||||
t.Error("fail remove item from array address")
|
t.Error("fail remove item from array address")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue