diff --git a/container/garray/garray_sorted_any.go b/container/garray/garray_sorted_any.go index d056464d7..030840f11 100644 --- a/container/garray/garray_sorted_any.go +++ b/container/garray/garray_sorted_any.go @@ -446,7 +446,7 @@ func (a *SortedArray) binSearch(value interface{}, lock bool) (index int, result mid := 0 cmp := -2 for min <= max { - mid = (min + max) / 2 + mid = min + int((max-min)/2) cmp = a.getComparator()(value, a.array[mid]) switch { case cmp < 0: diff --git a/container/garray/garray_sorted_int.go b/container/garray/garray_sorted_int.go index 28d3e97f9..3153c9cd5 100644 --- a/container/garray/garray_sorted_int.go +++ b/container/garray/garray_sorted_int.go @@ -443,7 +443,7 @@ func (a *SortedIntArray) binSearch(value int, lock bool) (index int, result int) mid := 0 cmp := -2 for min <= max { - mid = (min + max) / 2 + mid = min + int((max-min)/2) cmp = a.getComparator()(value, a.array[mid]) switch { case cmp < 0: diff --git a/container/garray/garray_sorted_str.go b/container/garray/garray_sorted_str.go index 649732347..9e23da894 100644 --- a/container/garray/garray_sorted_str.go +++ b/container/garray/garray_sorted_str.go @@ -445,7 +445,7 @@ func (a *SortedStrArray) binSearch(value string, lock bool) (index int, result i mid := 0 cmp := -2 for min <= max { - mid = (min + max) / 2 + mid = min + int((max-min)/2) cmp = a.getComparator()(value, a.array[mid]) switch { case cmp < 0: diff --git a/container/gtree/gtree_btree.go b/container/gtree/gtree_btree.go index 926898add..febc8ec9a 100644 --- a/container/gtree/gtree_btree.go +++ b/container/gtree/gtree_btree.go @@ -620,7 +620,7 @@ func (tree *BTree) middle() int { func (tree *BTree) search(node *BTreeNode, key interface{}) (index int, found bool) { low, mid, high := 0, 0, len(node.Entries)-1 for low <= high { - mid = (high + low) / 2 + mid = low + int((high-low)/2) compare := tree.getComparator()(key, node.Entries[mid].Key) switch { case compare > 0: diff --git a/os/gtimer/gtimer_timer.go b/os/gtimer/gtimer_timer.go index f03a5118c..733c09d62 100644 --- a/os/gtimer/gtimer_timer.go +++ b/os/gtimer/gtimer_timer.go @@ -233,7 +233,7 @@ func (t *Timer) binSearchIndex(n int64) (index int, result int) { mid := 0 cmp := -2 for min <= max { - mid = int((min + max) / 2) + mid = min + int((max-min)/2) switch { case t.wheels[mid].intervalMs == n: cmp = 0