Merge pull request #262 from nguyenbatam/tiny_fix_panic

fix error panic in func RemoveItemFromArray
This commit is contained in:
Tuna 2018-11-10 10:31:44 +07:00 committed by GitHub
commit b360290ded
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 7 deletions

View file

@ -247,16 +247,18 @@ func (a UnprefixedAddress) MarshalText() ([]byte, error) {
// Extract validators from byte array.
func RemoveItemFromArray(array []Address, items []Address) []Address {
if items == nil {
if len(items) == 0 {
return array
}
for i, value := range array {
for _, item := range items {
if value == item {
for i := len(array) - 1; i >= 0; i-- {
if array[i] == item {
array = append(array[:i], array[i+1:]...)
}
}
}
return array
}

View file

@ -151,10 +151,10 @@ func BenchmarkAddressHex(b *testing.B) {
}
func TestRemoveItemInArray(t *testing.T) {
array := []Address{HexToAddress("0x0000000"), HexToAddress("0x0000001"), HexToAddress("0x0000002")}
remove := []Address{HexToAddress("0x0000000"), HexToAddress("0x0000004"), HexToAddress("0x0000003")}
array := []Address{HexToAddress("0x0000003"),HexToAddress("0x0000001"), HexToAddress("0x0000002"),HexToAddress("0x0000003")}
remove := []Address{HexToAddress("0x0000002"), HexToAddress("0x0000004"), HexToAddress("0x0000003")}
array = RemoveItemFromArray(array, remove)
if len(array) != 2 {
if len(array) != 1 {
t.Error("fail remove item from array address")
}
}