Skip to content

Commit

Permalink
Fix glitches caught in PR
Browse files Browse the repository at this point in the history
  • Loading branch information
andydotxyz committed Dec 6, 2023
1 parent e653a65 commit 2be5bd7
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 67 deletions.
128 changes: 72 additions & 56 deletions data/binding/bindlists.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,25 +114,27 @@ func (l *boundBoolList) Remove(val bool) error {
l.lock.Lock()
defer l.lock.Unlock()

if len(*l.val) == 0 {
v := *l.val
if len(v) == 0 {
return nil
}
if (*l.val)[0] == val {
*l.val = (*l.val)[1:]
} else if (*l.val)[len(*l.val)-1] == val {
*l.val = (*l.val)[:len(*l.val)]
if v[0] == val {
*l.val = v[1:]
} else if v[len(v)-1] == val {
*l.val = v[:len(v)]
} else {
id := -1
for i, v := range *l.val {
for i, v := range v {
if v == val {
id = i
break
}
}

if id == -1 {
return nil
}
*l.val = append((*l.val)[:id], (*l.val)[id+1:]...)
*l.val = append(v[:id], v[id+1:]...)
}

return l.doReload()
Expand Down Expand Up @@ -368,25 +370,27 @@ func (l *boundBytesList) Remove(val []byte) error {
l.lock.Lock()
defer l.lock.Unlock()

if len(*l.val) == 0 {
v := *l.val
if len(v) == 0 {
return nil
}
if bytes.Equal((*l.val)[0], val) {
*l.val = (*l.val)[1:]
} else if bytes.Equal((*l.val)[len(*l.val)-1], val) {
*l.val = (*l.val)[:len(*l.val)]
if bytes.Equal(v[0], val) {
*l.val = v[1:]
} else if bytes.Equal(v[len(v)-1], val) {
*l.val = v[:len(v)]
} else {
id := -1
for i, v := range *l.val {
for i, v := range v {
if bytes.Equal(v, val) {
id = i
break
}
}

if id == -1 {
return nil
}
*l.val = append((*l.val)[:id], (*l.val)[id+1:]...)
*l.val = append(v[:id], v[id+1:]...)
}

return l.doReload()
Expand Down Expand Up @@ -622,25 +626,27 @@ func (l *boundFloatList) Remove(val float64) error {
l.lock.Lock()
defer l.lock.Unlock()

if len(*l.val) == 0 {
v := *l.val
if len(v) == 0 {
return nil
}
if (*l.val)[0] == val {
*l.val = (*l.val)[1:]
} else if (*l.val)[len(*l.val)-1] == val {
*l.val = (*l.val)[:len(*l.val)]
if v[0] == val {
*l.val = v[1:]
} else if v[len(v)-1] == val {
*l.val = v[:len(v)]
} else {
id := -1
for i, v := range *l.val {
for i, v := range v {
if v == val {
id = i
break
}
}

if id == -1 {
return nil
}
*l.val = append((*l.val)[:id], (*l.val)[id+1:]...)
*l.val = append(v[:id], v[id+1:]...)
}

return l.doReload()
Expand Down Expand Up @@ -876,25 +882,27 @@ func (l *boundIntList) Remove(val int) error {
l.lock.Lock()
defer l.lock.Unlock()

if len(*l.val) == 0 {
v := *l.val
if len(v) == 0 {
return nil
}
if (*l.val)[0] == val {
*l.val = (*l.val)[1:]
} else if (*l.val)[len(*l.val)-1] == val {
*l.val = (*l.val)[:len(*l.val)]
if v[0] == val {
*l.val = v[1:]
} else if v[len(v)-1] == val {
*l.val = v[:len(v)]
} else {
id := -1
for i, v := range *l.val {
for i, v := range v {
if v == val {
id = i
break
}
}

if id == -1 {
return nil
}
*l.val = append((*l.val)[:id], (*l.val)[id+1:]...)
*l.val = append(v[:id], v[id+1:]...)
}

return l.doReload()
Expand Down Expand Up @@ -1130,25 +1138,27 @@ func (l *boundRuneList) Remove(val rune) error {
l.lock.Lock()
defer l.lock.Unlock()

if len(*l.val) == 0 {
v := *l.val
if len(v) == 0 {
return nil
}
if (*l.val)[0] == val {
*l.val = (*l.val)[1:]
} else if (*l.val)[len(*l.val)-1] == val {
*l.val = (*l.val)[:len(*l.val)]
if v[0] == val {
*l.val = v[1:]
} else if v[len(v)-1] == val {
*l.val = v[:len(v)]
} else {
id := -1
for i, v := range *l.val {
for i, v := range v {
if v == val {
id = i
break
}
}

if id == -1 {
return nil
}
*l.val = append((*l.val)[:id], (*l.val)[id+1:]...)
*l.val = append(v[:id], v[id+1:]...)
}

return l.doReload()
Expand Down Expand Up @@ -1384,25 +1394,27 @@ func (l *boundStringList) Remove(val string) error {
l.lock.Lock()
defer l.lock.Unlock()

if len(*l.val) == 0 {
v := *l.val
if len(v) == 0 {
return nil
}
if (*l.val)[0] == val {
*l.val = (*l.val)[1:]
} else if (*l.val)[len(*l.val)-1] == val {
*l.val = (*l.val)[:len(*l.val)]
if v[0] == val {
*l.val = v[1:]
} else if v[len(v)-1] == val {
*l.val = v[:len(v)]
} else {
id := -1
for i, v := range *l.val {
for i, v := range v {
if v == val {
id = i
break
}
}

if id == -1 {
return nil
}
*l.val = append((*l.val)[:id], (*l.val)[id+1:]...)
*l.val = append(v[:id], v[id+1:]...)
}

return l.doReload()
Expand Down Expand Up @@ -1638,25 +1650,27 @@ func (l *boundUntypedList) Remove(val interface{}) error {
l.lock.Lock()
defer l.lock.Unlock()

if len(*l.val) == 0 {
v := *l.val
if len(v) == 0 {
return nil
}
if (*l.val)[0] == val {
*l.val = (*l.val)[1:]
} else if (*l.val)[len(*l.val)-1] == val {
*l.val = (*l.val)[:len(*l.val)]
if v[0] == val {
*l.val = v[1:]
} else if v[len(v)-1] == val {
*l.val = v[:len(v)]
} else {
id := -1
for i, v := range *l.val {
for i, v := range v {
if v == val {
id = i
break
}
}

if id == -1 {
return nil
}
*l.val = append((*l.val)[:id], (*l.val)[id+1:]...)
*l.val = append(v[:id], v[id+1:]...)
}

return l.doReload()
Expand Down Expand Up @@ -1892,25 +1906,27 @@ func (l *boundURIList) Remove(val fyne.URI) error {
l.lock.Lock()
defer l.lock.Unlock()

if len(*l.val) == 0 {
v := *l.val
if len(v) == 0 {
return nil
}
if compareURI((*l.val)[0], val) {
*l.val = (*l.val)[1:]
} else if compareURI((*l.val)[len(*l.val)-1], val) {
*l.val = (*l.val)[:len(*l.val)]
if compareURI(v[0], val) {
*l.val = v[1:]
} else if compareURI(v[len(v)-1], val) {
*l.val = v[:len(v)]
} else {
id := -1
for i, v := range *l.val {
for i, v := range v {
if compareURI(v, val) {
id = i
break
}
}

if id == -1 {
return nil
}
*l.val = append((*l.val)[:id], (*l.val)[id+1:]...)
*l.val = append(v[:id], v[id+1:]...)
}

return l.doReload()
Expand Down
25 changes: 14 additions & 11 deletions data/binding/gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -480,40 +480,43 @@ func (l *bound{{ .Name }}List) Remove(val {{ .Type }}) error {
l.lock.Lock()
defer l.lock.Unlock()
if len(*l.val) == 0 {
v := *l.val
if len(v) == 0 {
return nil
}
{{- if eq .Comparator "" }}
if (*l.val)[0] == val {
*l.val = (*l.val)[1:]
} else if (*l.val)[len(*l.val)-1] == val {
*l.val = (*l.val)[:len(*l.val)]
if v[0] == val {
*l.val = v[1:]
} else if v[len(v)-1] == val {
*l.val = v[:len(v)]
} else {
{{- else }}
if {{ .Comparator }}((*l.val)[0], val) {
*l.val = (*l.val)[1:]
} else if {{ .Comparator }}((*l.val)[len(*l.val)-1], val) {
*l.val = (*l.val)[:len(*l.val)]
if {{ .Comparator }}(v[0], val) {
*l.val = v[1:]
} else if {{ .Comparator }}(v[len(v)-1], val) {
*l.val = v[:len(v)]
} else {
{{- end }}
id := -1
for i, v := range *l.val {
for i, v := range v {
{{- if eq .Comparator "" }}
if v == val {
id = i
break
}
{{- else }}
if {{ .Comparator }}(v, val) {
id = i
break
}
{{- end }}
}
if id == -1 {
return nil
}
*l.val = append((*l.val)[:id], (*l.val)[id+1:]...)
*l.val = append(v[:id], v[id+1:]...)
}
return l.doReload()
Expand Down

0 comments on commit 2be5bd7

Please sign in to comment.