mirror of
https://github.com/golang/go
synced 2024-11-19 13:04:45 -07:00
runtime: move evacuateX evacuateY relation check from makemap to evacuate
Move the check near the code in evacuate that relies on the relation evacuateX+1 == evacuateY. If the relation is fullfilled the check is known to be true at compile time and removed by the compiler. Change-Id: I711b75e09047bf347819ccaeec41d244a5883867 Reviewed-on: https://go-review.googlesource.com/62410 Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
701d49245f
commit
a4956248a8
@ -296,11 +296,6 @@ func makemap(t *maptype, hint int, h *hmap) *hmap {
|
||||
hint = 0
|
||||
}
|
||||
|
||||
if evacuatedX+1 != evacuatedY {
|
||||
// evacuate relies on this relationship
|
||||
throw("bad evacuatedN")
|
||||
}
|
||||
|
||||
// initialize Hmap
|
||||
if h == nil {
|
||||
h = (*hmap)(newobject(t.hmap))
|
||||
@ -1061,7 +1056,11 @@ func evacuate(t *maptype, h *hmap, oldbucket uintptr) {
|
||||
}
|
||||
}
|
||||
|
||||
b.tophash[i] = evacuatedX + useY // evacuatedX + 1 == evacuatedY, enforced in makemap
|
||||
if evacuatedX+1 != evacuatedY {
|
||||
throw("bad evacuatedN")
|
||||
}
|
||||
|
||||
b.tophash[i] = evacuatedX + useY // evacuatedX + 1 == evacuatedY
|
||||
dst := &xy[useY] // evacuation destination
|
||||
|
||||
if dst.i == bucketCnt {
|
||||
|
Loading…
Reference in New Issue
Block a user